{"id":23395,"date":"2021-04-29T18:52:00","date_gmt":"2021-04-29T15:52:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=23395"},"modified":"2021-10-17T21:32:24","modified_gmt":"2021-10-17T18:32:24","slug":"edistynyt-php-ohjelmointi-kuinka-kayttaa-nimitilaa-php-ssa","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/edistynyt-php-ohjelmointi-kuinka-kayttaa-nimitilaa-php-ssa\/","title":{"rendered":"Edistynyt PHP-ohjelmointi &#8211; Kuinka k\u00e4ytt\u00e4\u00e4 nimitilaa PHP: ss\u00e4"},"content":{"rendered":"<p>PHP-aloittelijoille konseptinimitilat n\u00e4ytt\u00e4v\u00e4t melko monimutkaisilta. Mutta kun ymm\u00e4rr\u00e4mme nimitilojen perusteet, se on helppo toteuttaa. T\u00e4ss\u00e4 artikkelissa tutkitaan, miten nimitilaa k\u00e4ytet\u00e4\u00e4n PHP: ss\u00e4.<\/p>\n<p>Kehitt\u00e4j\u00e4n\u00e4 saat tuntuman edistyneest\u00e4 PHP-ohjelmoinnista k\u00e4ytt\u00e4ess\u00e4si nimitiloja koodissasi.<\/p>\n<p>PHP otti k\u00e4ytt\u00f6\u00f6n nimitiloja v\u00e4ltt\u00e4\u00e4kseen luokkien, toimintojen ja vakioiden v\u00e4lisi\u00e4 ristiriitoja.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20856-6082335e78ff5.png\" data-rel=\"lightbox\" ><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20856-6082335e78ff5.png\" alt=\"Edistynyt PHP-ohjelmointi - Kuinka k\u00e4ytt\u00e4\u00e4 nimitilaa PHP: ss\u00e4\" ><\/a><\/p>\n<p>Kun ty\u00f6skentelemme suuren projektin parissa, saattaa olla, ett\u00e4 ohjelmoijat voivat antaa samoja nimi\u00e4 luokalle, toiminnoille tai vakioille. Esimerkiksi, jos 2 ohjelmoijaa m\u00e4\u00e4rittelee saman luokan A, PHP heitt\u00e4\u00e4 vakavan virheen, kuten ei voi luokitella luokkaa A uudelleen.<\/p>\n<h3>M\u00e4\u00e4rit\u00e4 nimitila PHP: ss\u00e4<\/h3>\n<p>Jotta ymm\u00e4rt\u00e4isimme, milloin nimitila on m\u00e4\u00e4ritelt\u00e4v\u00e4, kirjoitamme osan koodista.<\/p>\n<p>Oletetaan, ett\u00e4 yksi kehitt\u00e4j\u00e4mme on kirjoittanut alla olevan koodin john.php-tiedostoon. T\u00e4m\u00e4 koodi on vain esimerkki nimitilojen selitt\u00e4misest\u00e4. Yksinkertaisuuden vuoksi kirjoitamme funktio, luokka ja vakiot samaan tiedostoon.<\/p>\n<pre><code>function my_name() {\n\u00a0\u00a0\u00a0\u00a0echo \"John\";\n}\n\u00a0\nclass Programming {\n\u00a0\u00a0\u00a0\u00a0function my_language() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"PHP\";\n\u00a0\u00a0\u00a0\u00a0}\n}\n\u00a0\nconst MYCONST = 1;<\/code><\/pre>\n<p>Saimme toisen kehitt\u00e4j\u00e4n, joka my\u00f6s k\u00e4ytti samaa nime\u00e4 luokassa, toiminnoissa ja vakioissa, mutta eri tarkoituksiin (tuotokset). H\u00e4nen tiedostonimi on sam.php.<\/p>\n<pre><code>function my_name() {\n\u00a0\u00a0\u00a0\u00a0echo \"Sam\";\n}\n\u00a0\nclass Programming {\n\u00a0\u00a0\u00a0\u00a0function my_language() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"Python\";\n\u00a0\u00a0\u00a0\u00a0}\n}\n\u00a0\nconst MYCONST = 2;<\/code><\/pre>\n<p>Nyt kun molemmat projektimme sis\u00e4lt\u00e4m\u00e4t kehitt\u00e4j\u00e4tiedostot saamme kohtalokkaan virheen. Virheen syy on, ett\u00e4 emme voi k\u00e4ytt\u00e4\u00e4 samaa nime\u00e4 kahdesti luokassa tai menetelm\u00e4ss\u00e4.<\/p>\n<p>T\u00e4ss\u00e4 meid\u00e4n pit\u00e4isi m\u00e4\u00e4ritell\u00e4 nimitila.<\/p>\n<p>Molemmissa PHP-tiedostoissa voimme m\u00e4\u00e4ritt\u00e4\u00e4 nimitilat kuten alla.<\/p>\n<pre><code>&lt;?php\nnamespace John;\n\u00a0\nfunction my_name() {\n\u00a0\u00a0\u00a0\u00a0echo \"John\";\n}\n\u00a0\nclass Programming {\n\u00a0\u00a0\u00a0\u00a0function my_language() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"PHP\";\n\u00a0\u00a0\u00a0\u00a0}\n}\n\u00a0\nconst MYCONST = 1;\n?&gt;<\/code><\/pre>\n<p>Ja<\/p>\n<pre><code>&lt;?php\nnamespace Sam;\n\u00a0\nfunction my_name() {\n\u00a0\u00a0\u00a0\u00a0echo \"Sam\";\n}\n\u00a0\nclass Programming {\n\u00a0\u00a0\u00a0\u00a0function my_language() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"Python\";\n\u00a0\u00a0\u00a0\u00a0}\n}\n\u00a0\nconst MYCONST = 2;\n?&gt;<\/code><\/pre>\n<p>Kun olemme lis\u00e4nneet nimitiloja yll\u00e4 oleviin tiedostoihin, PHP-virheet ovat kadonneet.<\/p>\n<h3>Nimitilojen k\u00e4ytt\u00e4minen<\/h3>\n<p>T\u00e4ss\u00e4 vaiheessa olemme tehneet m\u00e4\u00e4rittelev\u00e4t nimitilat. Seuraava vaihe on nimitilojen k\u00e4ytt\u00e4minen PHP: ss\u00e4.<\/p>\n<p>Molempien ohjelmoijien menetelm\u00e4n, luokan ja vakioiden k\u00e4ytt\u00e4miseksi meid\u00e4n on kirjoitettava koodi seuraavasti.<\/p>\n<pre><code>&lt;?php\nrequire_once('john.php');\nrequire_once('sam.php');\n\u00a0\nSammy_name();\u00a0 \/\/output \"Sam\"\nJohnmy_name(); \/\/output \"John\"\n\u00a0\n$a = new SamProgramming();\n$a-&gt;my_language();\u00a0\u00a0 \/\/output \"Python\"\n\u00a0\n$b = new JohnProgramming();\n$b-&gt;my_language();\u00a0\u00a0 \/\/output \"John\"\n\u00a0\n\u00a0\necho JohnMYCONST;\u00a0 \/\/output \"1\"\necho SamMYCONST;\u00a0\u00a0 \/\/output \"2\"\n?&gt;<\/code><\/pre>\n<p>Luokan tai menetelmien k\u00e4ytt\u00e4miseksi meid\u00e4n on liitett\u00e4v\u00e4 nimitilan nimi ennen sit\u00e4.<\/p>\n<p>Toivomme, ett\u00e4 ymm\u00e4rr\u00e4t kuinka k\u00e4ytt\u00e4\u00e4 nimitilaa PHP: ss\u00e4. Jos sinulla on kysytt\u00e4v\u00e4\u00e4 tai ehdotuksia, j\u00e4t\u00e4 kommentti alla.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Haluatko tiet\u00e4\u00e4, miten nimitilaa k\u00e4ytet\u00e4\u00e4n PHP: ss\u00e4? Nimitiloja k\u00e4ytet\u00e4\u00e4n luokkien ja menetelmien v\u00e4listen ristiriitojen v\u00e4ltt\u00e4miseksi. T\u00e4ss\u00e4 artikkelissa tutkitaan PHP-nimiavaruutta<\/p>\n","protected":false},"author":1,"featured_media":21909,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[275],"tags":[843],"class_list":["post-23395","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-6","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/23395","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/comments?post=23395"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/23395\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/21909"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=23395"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=23395"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=23395"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}