{"id":26814,"date":"2021-04-29T18:32:00","date_gmt":"2021-04-29T15:32:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26814"},"modified":"2021-10-17T05:28:26","modified_gmt":"2021-10-17T02:28:26","slug":"avancerad-php-programmering-hur-man-anvander-namnutrymme-i-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/sv\/avancerad-php-programmering-hur-man-anvander-namnutrymme-i-php\/","title":{"rendered":"Avancerad PHP-programmering &#8211; Hur man anv\u00e4nder namnutrymme i PHP"},"content":{"rendered":"<p>F\u00f6r PHP-nyb\u00f6rjare verkar begreppet namnomr\u00e5den ganska komplicerade. Men n\u00e4r vi f\u00f6rst\u00e5r grunderna f\u00f6r namnomr\u00e5den \u00e4r det l\u00e4tt att implementera. I den h\u00e4r artikeln studerar vi hur man anv\u00e4nder namespace i PHP.<\/p>\n<p>Som utvecklare f\u00e5r du en k\u00e4nsla av avancerad PHP-programmering n\u00e4r du anv\u00e4nder namnytorna i din kod.<\/p>\n<p>PHP introducerade namnomr\u00e5den f\u00f6r att undvika namngivningskonflikter mellan klasser, funktioner och konstanter.<\/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=\"Avancerad PHP-programmering - Hur man anv\u00e4nder namnutrymme i PHP\" ><\/a><\/p>\n<p>N\u00e4r vi arbetar med ett stort projekt kan det finnas m\u00f6jligheter f\u00f6r programmerare att ge samma namn till klass, funktioner eller konstanter. Till exempel, om tv\u00e5 programmerare definierar samma klass A, kastar PHP ett d\u00f6dligt fel som inte kan deklarera klass A.<\/p>\n<h3>Definiera namnomr\u00e5de i PHP<\/h3>\n<p>F\u00f6r att f\u00f6rst\u00e5 n\u00e4r vi ska definiera namnomr\u00e5de skriver vi n\u00e5gon kod.<\/p>\n<p>L\u00e5t oss s\u00e4ga att v\u00e5r utvecklare har skrivit en nedanst\u00e5ende kod i en john.php-fil. Den h\u00e4r koden \u00e4r bara ett exempel f\u00f6r att f\u00f6rklara namnomr\u00e5den. F\u00f6r enkelhetens skull skriver vi funktion, klass och konstanter i samma fil.<\/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>Vi fick en annan utvecklare som ocks\u00e5 anv\u00e4nde samma namn f\u00f6r klass, funktioner och konstanter men f\u00f6r olika \u00e4ndam\u00e5l (utdata). Hans filnamn \u00e4r 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>Nu n\u00e4r b\u00e5da utvecklarens filer som ing\u00e5r i v\u00e5rt projekt f\u00e5r vi det allvarliga felet. Orsaken till felet \u00e4r att vi inte kan anv\u00e4nda samma namn tv\u00e5 g\u00e5nger f\u00f6r en klass eller metod.<\/p>\n<p>Det \u00e4r h\u00e4r vi ska definiera namnomr\u00e5det.<\/p>\n<p>I b\u00e5da PHP-filerna kan vi definiera namnomr\u00e5den som nedan.<\/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>Och<\/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>N\u00e4r vi v\u00e4l lagt till namnytor i ovanst\u00e5ende filer kommer PHP-fel att vara borta.<\/p>\n<h3>Anv\u00e4nda namnomr\u00e5den<\/h3>\n<p>I det h\u00e4r skedet \u00e4r vi klara med de definierande namnytorna. N\u00e4sta steg \u00e4r hur man anv\u00e4nder namnomr\u00e5den i PHP.<\/p>\n<p>F\u00f6r att anv\u00e4nda metoden, klassen och konstanterna f\u00f6r b\u00e5da programmerarna m\u00e5ste vi skriva en kod enligt f\u00f6ljande.<\/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>F\u00f6r att f\u00e5 \u00e5tkomst till klass eller metoder m\u00e5ste vi l\u00e4gga till namnutrymmets namn f\u00f6re den.<\/p>\n<p>Vi hoppas att du f\u00f6rst\u00e5r hur du anv\u00e4nder namespace i PHP. Om du har n\u00e5gra fr\u00e5gor eller f\u00f6rslag, v\u00e4nligen l\u00e4mna en kommentar nedan.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vill du veta hur du anv\u00e4nder namespace i PHP? Namnomr\u00e5den anv\u00e4nds f\u00f6r att undvika namngivningskonflikter mellan klasser och metoder. I den h\u00e4r artikeln studerar vi PHP-namnomr\u00e5de<\/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":[279],"tags":[850],"class_list":["post-26814","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-10","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/26814","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/comments?post=26814"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/26814\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media\/21909"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media?parent=26814"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/categories?post=26814"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/tags?post=26814"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}