<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Code42 &#187; ciekawostki</title>
	<atom:link href="http://code42.pl/tag/ciekawostki/feed/" rel="self" type="application/rss+xml" />
	<link>http://code42.pl</link>
	<description>Wielkie Pytanie o Życie, Kod i całą resztę</description>
	<lastBuildDate>Wed, 25 Jan 2012 14:16:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>PHP: prawie jak parametry nazwane</title>
		<link>http://code42.pl/2010/03/03/php-prawie-jak-parametry-nazwane/</link>
		<comments>http://code42.pl/2010/03/03/php-prawie-jak-parametry-nazwane/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 09:23:37 +0000</pubDate>
		<dc:creator>zergu</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ciekawostki]]></category>

		<guid isPermaLink="false">http://code42.pl/?p=512</guid>
		<description><![CDATA[W PHP nie ma czegoś takiego jak parametry nazwane z działania, ale jest taka rzecz z …wyglądu. O co chodzi? Mając funkcję: function foo &#40;$a = 1, $b = 22&#41; &#123; echo $a.' ~ '.$b; &#125; Normalnie ją wywołujemy na takie sposoby: foo&#40;&#41; // → '1 ~ 22' foo &#40;6&#41; // → '6 ~ 22' [...]


Brak podobnych wposów.]]></description>
			<content:encoded><![CDATA[<p><img src="http://code42.pl/wp-content/uploads/crazy-horse-536x250.jpg" alt="" title="crazy-horse" width="536" height="250" class="aligncenter size-medium wp-image-730" /></p>
<p>W PHP nie ma czegoś takiego jak parametry nazwane z działania, ale jest taka rzecz z …wyglądu. O co chodzi? Mając funkcję:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> foo <span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #000088;">$b</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">22</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$a</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' ~ '</span><span style="color: #339933;">.</span><span style="color: #000088;">$b</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Normalnie ją wywołujemy na takie sposoby:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">foo<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">// → '1 ~ 22'</span>
foo <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">// → '6 ~ 22'</span>
foo <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">// → '3 ~ 4'</span></pre></div></div>

<p>Jednak możemy sobie funkcję wywołać dodając etykiety parametrom:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">foo <span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span> <span style="color: #000088;">$b</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">33</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">// → '2 ~ 33'</span></pre></div></div>

<p>Możemy to zrobić również „niepoprawnie”:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">foo <span style="color: #009900;">&#40;</span><span style="color: #000088;">$b</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">7</span><span style="color: #339933;">,</span> <span style="color: #000088;">$a</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">// → '7 ~ 3'</span></pre></div></div>

<p>Jak widać PHP <strong>nie bierze</strong> pod uwagę tych nazw parametrów, jedynie kolejność. Nazwy mogą być dowolne, użyte zostaną i tak te z deklaracji funkcji. Powstaje więc pytanie — po co tego w ogóle używać? Otóż — dla <strong>przejrzystości kodu</strong>, co powinien dobrze zobrazować poniższy przykład:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">render_last_posts <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'desc'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">// → że jakie te posty mają być?</span>
&nbsp;
render_last_posts <span style="color: #009900;">&#40;</span><span style="color: #000088;">$limit</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #000088;">$sort</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'desc'</span><span style="color: #339933;">,</span>
    <span style="color: #000088;">$only_published</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span> <span style="color: #000088;">$by_user</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">// aaa, takie!</span></pre></div></div>

<p class="warning"><strong>Uwaga</strong>. Takie przypisania ustawiają wartości zmiennych w danym zakresie, co czasami może doprowadzić do błędów (nadpisanie wcześniej zdefiniowanej zmiennej) lub być sytuacją pożądaną (przypisanie wartości do późniejszego wykorzystania).</p>


<p>Brak podobnych wposów.</p>]]></content:encoded>
			<wfw:commentRss>http://code42.pl/2010/03/03/php-prawie-jak-parametry-nazwane/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

