<?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>TokyoHeadTerminal &#187; PHP</title>
	<atom:link href="http://www.head-t.com/tag/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.head-t.com</link>
	<description></description>
	<lastBuildDate>Wed, 08 Feb 2012 05:40:38 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>複数のWebサイトからRSSを取得して表示させる方法</title>
		<link>http://www.head-t.com/2010/07/2010-07-05_02.html</link>
		<comments>http://www.head-t.com/2010/07/2010-07-05_02.html#comments</comments>
		<pubDate>Mon, 05 Jul 2010 01:05:10 +0000</pubDate>
		<dc:creator>大森</dc:creator>
				<category><![CDATA[ブログ]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.head-t.com/?p=4900</guid>
		<description><![CDATA[「MagpieRSS」を使って複数のサイトから RSS を取得し、それをさらに外部サイトに読み込む方法をメモです。 いくつかのブログを運営している場合などに、それらの更新情報をまとめて表示したいのよ！ということが可能にな [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_6743" class="wp-caption alignnone" style="width: 360px"><a class="fancy" href="http://www.head-t.com/wp-content/uploads/2010/07/2010-07-05_02.jpg"><img src="http://www.head-t.com/wp-content/uploads/2010/07/2010-07-05_02-350x106.jpg" alt="複数のWebサイトからRSSを取得して表示させる方法" title="複数のWebサイトからRSSを取得して表示させる方法" width="350" height="106" class="size-medium wp-image-6743" /></a><p class="wp-caption-text">複数のWebサイトからRSSを取得して表示させる方法</p></div>
<p>「<a href="http://magpierss.sourceforge.net/">MagpieRSS</a>」を使って複数のサイトから RSS を取得し、それをさらに外部サイトに読み込む方法をメモです。<br />
いくつかのブログを運営している場合などに、それらの更新情報をまとめて表示したいのよ！ということが可能になると思います。</p>
<h3>01_まずは MagpieRSS をアップロードします</h3>
<p>MagpieRSS をダウンロードして解凍後、以下のファイルをサーバにアップロードします。</p>
<ul>
<li>rss_cache.inc</li>
<li>rss_fetch.inc</li>
<li>rss_parse.inc</li>
<li>rss_utils.inc</li>
<li>extlib フォルダ</li>
</ul>
<h3>02_RSS を取得するための index.php を作成します</h3>
<p>先ほどアップロードした場所に index.php を作成します。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
 <span style="color: #666666; font-style: italic;">//-------------------------------------------------------------------------</span>
 <span style="color: #000088;">$urls</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'http://www.◯◯.com/blog/rss.xml'</span><span style="color: #339933;">;</span>
 <span style="color: #000088;">$urls</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'http://www.◯◯.com/blog/rss.xml'</span><span style="color: #339933;">;</span>
 <span style="color: #666666; font-style: italic;">//-------------------------------------------------------------------------</span>
&nbsp;
 <span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'http://www.◯◯.com/アップロードしたディレクトリ/rss_fetch.inc'</span><span style="color: #339933;">;</span>
&nbsp;
 <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$urls</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">// get rss</span>
  <span style="color: #000088;">$rss</span> <span style="color: #339933;">=</span> fetch_rss<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// Title</span>
  <span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$rss</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">channel</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'title'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mb_convert_encoding</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$title</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;auto&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;h2&gt;<span style="color: #006699; font-weight: bold;">$title</span>&lt;/h2&gt;n&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #666666; font-style: italic;">// Items</span>
  <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;ul&gt;n&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$rss</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">items</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$item</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$item</span><span style="color: #009900;">&#91;</span>title<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mb_convert_encoding</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$title</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;auto&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$url</span>   <span style="color: #339933;">=</span> <span style="color: #000088;">$item</span><span style="color: #009900;">&#91;</span><span style="color: #990000;">link</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;li&gt;&lt;a href=&quot;</span><span style="color: #000088;">$url</span><span style="color: #0000ff;">&quot;&gt;<span style="color: #006699; font-weight: bold;">$title</span>&lt;/a&gt;&lt;/li&gt;n&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;/ul&gt;n&quot;</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<p><span class="icon">&raquo;</span><a href="http://pc.casey.jp/archives/125">pc.casey.jp » PHPでRSSを取得して表示する</a></p>
<h3>03_文字化け対策をしておきます</h3>
<p>このままでは文字化けするので、</p>
<p>rss_fetch.inc の</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>357
358
359
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><span style="color: #990000;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'MAGPIE_OUTPUT_ENCODING'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'MAGPIE_OUTPUT_ENCODING'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'ISO-8859-1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

</p>
<p>を以下のように変更します。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>357
358
359
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><span style="color: #990000;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'MAGPIE_OUTPUT_ENCODING'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'MAGPIE_OUTPUT_ENCODING'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'UTF-8'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

</p>
<h3>04_取得した RSS を外部から読み込みます</h3>
<p>iframe を使って以下のようにするか、</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;iframe src=&quot;http://www.◯◯.com/rss/index.php&quot;&gt;&lt;/iframe&gt;</pre></td></tr></table></div>

<p>PHP の場合は include で表示させます！</p>
<p><span class="icon">&raquo;</span><a href="http://magpierss.sourceforge.net/">Magpie RSS &#8211; PHP RSS Parser</a><br />
<span class="icon">&raquo;</span><a href="http://www.hyuki.com/yukiwiki/wiki.cgi?MagpieRSS">MagpieRSS &#8211; PHP で使える RSS パーサー。</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.head-t.com/2010/07/2010-07-05_02.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【独習PHP】08_関数</title>
		<link>http://www.head-t.com/2008/12/2008-12-10-01.html</link>
		<comments>http://www.head-t.com/2008/12/2008-12-10-01.html#comments</comments>
		<pubDate>Wed, 10 Dec 2008 09:48:26 +0000</pubDate>
		<dc:creator>大森</dc:creator>
				<category><![CDATA[ブログ]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tyoht.kir.jp/wp/?p=129</guid>
		<description><![CDATA[「独習PHP」を元に、要約メモしておきたいと思います。 関数とは、与えられた入力に基づいてなにかしらの結果を返す命令のことを言う。この入力のことを引数、出力のことを戻り値と呼ぶ。関数の基本的な構文は以下。 1 &#91; [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_7596" class="wp-caption alignnone" style="width: 360px"><a class="fancy" href="http://www.head-t.com/wp-content/uploads/2008/12/2008-12-10_01.jpg"><img src="http://www.head-t.com/wp-content/uploads/2008/12/2008-12-10_01-350x132.jpg" alt="【独習PHP】08_関数" title="【独習PHP】08_関数" width="350" height="132" class="size-medium wp-image-7596" /></a><p class="wp-caption-text">【独習PHP】08_関数</p></div>
<p>「<a href="http://www.amazon.co.jp/gp/product/4798109819?ie=UTF8&#038;tag=headterminal-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4798109819" target="_blank">独習PHP</a><img src="http://www.assoc-amazon.jp/e/ir?t=headterminal-22&#038;l=as2&#038;o=9&#038;a=4798109819" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />」を元に、要約メモしておきたいと思います。</p>
<p>関数とは、与えられた入力に基づいてなにかしらの結果を返す命令のことを言う。この入力のことを<strong>引数</strong>、出力のことを<strong>戻り値</strong>と呼ぶ。関数の基本的な構文は以下。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009900;">&#91;</span>戻り値<span style="color: #339933;">=</span><span style="color: #009900;">&#93;</span> 関数名 <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span>引数<span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span>引数<span style="color: #cc66cc;">2</span><span style="color: #339933;">,...</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span></pre></td></tr></table></div>

</p>
<p>引数が2つ以上存在する場合には、カンマ区切りで記述する。引数が存在しない場合での関数名の後のカッコは省略できない。また、関数によっては処理を行うのみで戻り値を持たないものがある。</p>
<p><strong>PHPマニュアルにおける、基本的な構文表記の読み方</strong></p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">void <span style="color: #990000;">asort</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#91;</span><span style="color: #339933;">,</span>int sort_flags<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
戻り値のデータ型　関数名　<span style="color: #009900;">&#40;</span>引数のデータ型　仮引数　<span style="color: #009900;">&#91;</span><span style="color: #339933;">,</span>引数のデータ型　仮引数<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span></pre></td></tr></table></div>

</p>
<p>引数のデータ型には次のようなものがある</p>
<table>
<tr>
<th>データ型</th>
<th>概要</th>
</tr>
<tr>
<td>array</td>
<td>配列型</td>
</tr>
<tr>
<td>bool</td>
<td>真偽型（TRUE | FALSE）</td>
</tr>
<tr>
<td>float</td>
<td>浮動小数点型</td>
</tr>
<tr>
<td>int</td>
<td>整数型</td>
</tr>
<tr>
<td>mixed</td>
<td>複数のデータ型を返す可能性がある（戻り値のみ）</td>
</tr>
<tr>
<td>object</td>
<td>オブジェクト型</td>
</tr>
<tr>
<td>resource</td>
<td>リソース型</td>
</tr>
<tr>
<td>string</td>
<td>文字列型</td>
</tr>
<tr>
<td>void</td>
<td>戻り値がない（戻り値のみ）</td>
</tr>
</table>
<p>関数が戻り値を返さない場合、戻り値のデータ型はvoidと表記される。また、関数によっては、たとえば処理に成功した場合はresouce型を、失敗した場合はFALSEを返すようなものがある。このような関数の戻り値はmixed（混合型）と表記される。 </p>
<h3>ユーザ定義関数</h3>
<p>あらかじめ用意されている関数ではなく、自前の関数。</p>
<p>下記はユーザ定義関数の例。showString関数は、与えられた文字列（$value）を$num回繰り返す。その歳、$delimで指定された値を文字列の区切り文字として使用する。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">function</span> showString <span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span><span style="color: #339933;">,</span> <span style="color: #000088;">$num</span><span style="color: #339933;">,</span> <span style="color: #000088;">$delim</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">&lt;=</span><span style="color: #000088;">$num</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span><span style="color: #339933;">.</span><span style="color: #000088;">$delim</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
　<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
showString <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'だるまさんが転んだ！'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'&lt;br/&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>だるまさんが転んだ！ だるまさんが転んだ！ だるまさんが転んだ！ だるまさんが転んだ！ だるまさんが転んだ！</p></blockquote>
<p>ユーザ定義関数を定義するには、function命令を使用する。function命令の一般的な構文は以下。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> 関数名 <span style="color: #009900;">&#40;</span>仮引数<span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span>仮引数<span style="color: #cc66cc;">2</span><span style="color: #339933;">,...</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #339933;">...</span>任意の処理<span style="color: #339933;">...</span>
　　<span style="color: #009900;">&#91;</span><span style="color: #b1b100;">return</span> 戻り値<span style="color: #339933;">;</span><span style="color: #009900;">&#93;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

</p>
<p>仮引数とは、ユーザ定義関数の処理内で参照可能な変数のこと。後からユーザ定義関数を利用する場合、外部の情報をユーザ定義関数に引き渡す際に使用する。ユーザ定義関数の引数を定義するための情報。</p>
<p>省略可能な引数を設定したい場合には、次のように仮引数の後方にデフォルト値を明記する。これによって、引数が省略された場合には、指定されたデフォルト値が使用される。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">function</span> showString <span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span><span style="color: #339933;">,</span> <span style="color: #000088;">$num</span><span style="color: #339933;">,</span> <span style="color: #000088;">$delim</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'&lt;br /&gt;'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">&lt;=</span><span style="color: #000088;">$num</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span><span style="color: #339933;">.</span>delim<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
　<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
showString <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'だるまさんが転んだ！'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<p>ただし、省略可能な引数は、必ず必須である引数の後方に配置するようにする。たとえば次のような記述は不可。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> showString <span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span><span style="color: #339933;">,</span> <span style="color: #000088;">$delim</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'&lt;br /&gt;'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$num</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span></pre></td></tr></table></div>

</p>
<p>ユーザ定義関数が戻り値を持つ場合は、return命令を使用して処理結果を呼び出し元に返す。return命令が記述されなかった場合、ユーザ定義関数は戻り値を返さない。</p>
<h3>関数の有効範囲</h3>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$x</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">function</span> sample<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #000088;">$x</span><span style="color: #339933;">++;</span>
　<span style="color: #b1b100;">return</span> <span style="color: #000088;">$x</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span>sample<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>1</p></blockquote>
<p>関数内の変数をローカル変数、関数外の変数をグローバル変数と呼ぶ。 上の例では、最初に初期化された$xはグローバル変数で、次にユーザ定義関数の中で定義された$x（ローカル変数）とは全くの別物。</p>
<p>グローバル変数を強制的にローカル変数として利用したい場合には、globalキーワードを使用する。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$x</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">function</span> sample<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$x</span><span style="color: #339933;">;</span>
　<span style="color: #000088;">$x</span><span style="color: #339933;">++;</span>
　<span style="color: #b1b100;">return</span> <span style="color: #000088;">$x</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span>sample<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>2</p></blockquote>
<h3>外部ファイルのインクルード</h3>
<p>ユーザ定義関数はその性質上、特定のスクリプトでだけ利用するよりも、複数のスクリプトで共有することが多い。外部ファイルとして保存しておき、必要に応じてインクルード（取り込む）のが好ましいアプローチ。 外部ファイルをインクルードするには、<strong>include_once命令</strong>または<strong>require_once命令</strong>を使用する。</p>
<p><strong>included.php</strong></p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">function</span> showString <span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span><span style="color: #339933;">,</span> <span style="color: #000088;">$num</span><span style="color: #339933;">,</span> <span style="color: #000088;">$delim</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">&lt;=</span><span style="color: #000088;">$num</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span><span style="color: #339933;">.</span><span style="color: #000088;">$delim</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
　<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<p><strong>include.php</strong></p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">include_once</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'included.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
showString <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'だるまさんが転んだ！'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'&lt;br /&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<p><strong>require.php</strong></p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">require_once</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'included.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
showString <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'だるまさんが転んだ！'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'&lt;br /&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<p>外部ファイルが存在しなかった場合、include_once関数は警告を発するだけだが、require_once関数はエラーとし、スクリプトの実行を中断する。</p>
<div class="link">
<h3 class="link">外部リンク</h3>
<ul class="link">
<li class="link"><span class="icon">&raquo;</span><a href="http://www.php.net/manual/ja/" target="_blank">PHP: PHP マニュアル &#8211; Manual</a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.head-t.com/2008/12/2008-12-10-01.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【独習PHP】07_繰り返し処理</title>
		<link>http://www.head-t.com/2008/12/2008-12-09-03.html</link>
		<comments>http://www.head-t.com/2008/12/2008-12-09-03.html#comments</comments>
		<pubDate>Tue, 09 Dec 2008 11:11:47 +0000</pubDate>
		<dc:creator>大森</dc:creator>
				<category><![CDATA[ブログ]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tyoht.kir.jp/wp/?p=128</guid>
		<description><![CDATA[「独習PHP」を元に、要約メモしておきたいと思います。 for命令 あらかじめ指定された回数だけ繰り返し処理を行うための命令。 1 2 3 4 5 &#60;?php for &#40;$i=1; $i&#60;6; $i+ [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_7598" class="wp-caption alignnone" style="width: 360px"><a class="fancy" href="http://www.head-t.com/wp-content/uploads/2008/12/2008-12-09_03.jpg"><img src="http://www.head-t.com/wp-content/uploads/2008/12/2008-12-09_03-350x132.jpg" alt="【独習PHP】07_繰り返し処理" title="【独習PHP】07_繰り返し処理" width="350" height="132" class="size-medium wp-image-7598" /></a><p class="wp-caption-text">【独習PHP】07_繰り返し処理</p></div>
<p>「<a href="http://www.amazon.co.jp/gp/product/4798109819?ie=UTF8&#038;tag=headterminal-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4798109819" target="_blank">独習PHP</a><img src="http://www.assoc-amazon.jp/e/ir?t=headterminal-22&#038;l=as2&#038;o=9&#038;a=4798109819" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />」を元に、要約メモしておきたいと思います。</p>
<h3>for命令</h3>
<p>あらかじめ指定された回数だけ繰り返し処理を行うための命令。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">6</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$i</span> 番目のグループです。&lt;br /&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>1 番目のグループです。 2 番目のグループです。 3 番目のグループです。 4 番目のグループです。 5 番目のグループです。 </p></blockquote>
<p>最初の式（$i=1）で初期値をセットする。 2番目の式（$i<6）はループの継続条件を示す。 3番目の式（$i++）はループが1回終了するたびに実行される増減式。</p>
<h3>while命令とdo&#8230;while命令</h3>
<p>あらかじめ繰り返し回数が決まっている場合に便利なfor命令に対して、何かしらループ内の特定の条件に基づいてループの終了を制御したい場合に使用する。</p>
<h4>while命令</h4>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$i</span> 番目のループです。&lt;br /&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
　<span style="color: #000088;">$i</span><span style="color: #339933;">++;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<h4>do&#8230;while命令</h4>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">do</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$i</span> 番目のループです。&lt;br /&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
　<span style="color: #000088;">$i</span><span style="color: #339933;">++;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<p>while命令は前置判断（ループの最初で条件判断を行う）、do&#8230;while命令は後置判断（ループの最後で条件判断を行う）。前置判断と後置判断では、ループが始まる前にすでに条件式がFALSEである場合に挙動の違いとして現れてくる。後置判断では必ず1回はループ処理されるが、前置判断では1回もループされない場合がある。</p>
<h3>foreach命令</h3>
<p>配列（連想配列）配下の各要素に対して繰り返し処理を行う。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$data</span><span style="color: #339933;">=</span><span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'大森'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'男'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'小林'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'女'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'林'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'男'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'森'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'女'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span><span style="color: #339933;">=&gt;</span><span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$key</span> : <span style="color: #006699; font-weight: bold;">$value</span> &lt;br /&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>大森 : 男 小林 : 女 林 : 男 森 : 女</p></blockquote>
<h3>break命令とcotinue命令</h3>
<h4>continue命令</h4>
<p>特定の条件下で繰り返しを中断したり、一部の処理をスキップすることが可能になる。 たとえば以下は、1〜10までの偶数値のみを加算するスクリプト。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$num</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&lt;=</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">%</span><span style="color:#800080;">2</span><span style="color: #339933;">!=</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #b1b100;">continue</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
　<span style="color: #000088;">$num</span><span style="color: #339933;">+=</span><span style="color: #000088;">$i</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;合計値は <span style="color: #006699; font-weight: bold;">$num</span> です。&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>合計値は 30 です。</p></blockquote>
<h4>break命令</h4>
<p>continue命令は、特定条件を満たしたときにcontinue命令を実行して現在のループをスキップし、次のループを継続して実行できる。</p>
<p>break命令は、特定条件を満たしたタイミングでループを脱出する。以下は、1〜100までの値を加算し、合計値が100を越えたときのループ変数を出力する。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$num</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">9</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">&lt;=</span><span style="color: #cc66cc;">100</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$num</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #b1b100;">break</span> <span style="color: #009900;">&#125;</span>
　<span style="color: #000088;">$num</span><span style="color: #339933;">+=</span><span style="color: #000088;">$i</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'合計が100を越えるのは1 〜'</span> <span style="color: #339933;">.--</span><span style="color: #000088;">$i</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' までを加算したときです。'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>合計が100を越えるのは1 〜14までを加算したときです。</p></blockquote>
<h3 class="link">外部リンク</h3>
<ul class="link">
<li class="link"><span class="icon">&raquo;</span><a href="http://www.php.net/manual/ja/" target="_blank">PHP: PHP マニュアル &#8211; Manual</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.head-t.com/2008/12/2008-12-09-03.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【独習PHP】06_条件分岐</title>
		<link>http://www.head-t.com/2008/12/2008-12-09-02.html</link>
		<comments>http://www.head-t.com/2008/12/2008-12-09-02.html#comments</comments>
		<pubDate>Tue, 09 Dec 2008 11:11:11 +0000</pubDate>
		<dc:creator>大森</dc:creator>
				<category><![CDATA[ブログ]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tyoht.kir.jp/wp/?p=127</guid>
		<description><![CDATA[「独習PHP」を元に、要約メモしておきたいと思います。 if命令 if命令はもしも〜だったら&#8230;さもなければ&#8230;という構文を作成する。 1 2 3 4 5 6 7 8 &#60;?php $x=10;  [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_7600" class="wp-caption alignnone" style="width: 360px"><a class="fancy" href="http://www.head-t.com/wp-content/uploads/2008/12/2008-12-09_02.jpg"><img src="http://www.head-t.com/wp-content/uploads/2008/12/2008-12-09_02-350x132.jpg" alt="【独習PHP】06_条件分岐" title="【独習PHP】06_条件分岐" width="350" height="132" class="size-medium wp-image-7600" /></a><p class="wp-caption-text">【独習PHP】06_条件分岐</p></div>
<p>「<a href="http://www.amazon.co.jp/gp/product/4798109819?ie=UTF8&#038;tag=headterminal-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4798109819" target="_blank">独習PHP</a><img src="http://www.assoc-amazon.jp/e/ir?t=headterminal-22&#038;l=as2&#038;o=9&#038;a=4798109819" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />」を元に、要約メモしておきたいと思います。</p>
<h3>if命令</h3>
<p>if命令は<strong>もしも〜だったら&#8230;さもなければ&#8230;</strong>という構文を作成する。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$x</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$x</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'変数$xは10です。'</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'変数$xは10ではありません。'</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>変数$xは10です。</p></blockquote>
<p>指定された条件式がTRUEの場合に条件式直後のブロックを、FALSEの場合にelse直後のブロックをそれぞれ実行する。</p>
<p>また、<strong>elsif</strong>ブロックを使用することで、複数の分岐を表現することも可能。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$x</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">15</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$x</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">20</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'変数$xは20より大きいです。'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> elsif <span style="color: #009900;">&#40;</span><span style="color: #000088;">$x</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'変数$xは10より大きく、20以下です。'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'変数$xは10以下です。'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>変数$xは10より大きく、20以下です。</p></blockquote>
<p>条件1を満たし、かつ条件2がTRUEであるかどうかによって処理を分岐させる場合にはif命令をネスト構造にする。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$x</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$y</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$x</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$y</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'変数$x、$yは1です。'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
　<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
　　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'変数$xは1です。$yは1ではありません。'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
　<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'変数$xは1ではありません。'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>変数$xは1です。$yは1ではありません。</p></blockquote>
<h3>switch命令</h3>
<p>if命令ではせいぜい3分岐（できれば2分岐）程度の単純分岐にとどめ、多岐分岐を表現する場合にはswitch命令を使用する。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$rank</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'甲'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$rank</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
　<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'甲'</span> <span style="color: #339933;">:</span>
　　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'大変良いです。'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
　　<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
　<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'乙'</span> <span style="color: #339933;">:</span>
　　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'良いです。'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
　　<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
　<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'丙'</span> <span style="color: #339933;">:</span>
　　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'もう少しがんばりましょう。'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
　　<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
　<span style="color: #b1b100;">default</span> <span style="color: #339933;">:</span>
　　<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'???'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
　　<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>大変良いです。</p></blockquote>
<p>それぞれのcaseブロックには複数の命令を指定できるが、必ず最後にbreak命令でswitchブロック全体を明示的に脱出しなければならない。defaultブロックは、caseブロックに合致するものが無かった場合に実行されるブロック。defaultブロックの記述は任意だが、意図しない値が入力（指定）された場合の処理を曖昧にしないためにも、きちんと明示しておく。</p>
<h3 class="link">外部リンク</h3>
<ul class="link">
<li class="link"><span class="icon">&raquo;</span><a href="http://www.php.net/manual/ja/" target="_blank">PHP: PHP マニュアル &#8211; Manual</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.head-t.com/2008/12/2008-12-09-02.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【独習PHP】05_演算子</title>
		<link>http://www.head-t.com/2008/12/2008-12-08-02.html</link>
		<comments>http://www.head-t.com/2008/12/2008-12-08-02.html#comments</comments>
		<pubDate>Mon, 08 Dec 2008 08:50:47 +0000</pubDate>
		<dc:creator>大森</dc:creator>
				<category><![CDATA[ブログ]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tyoht.kir.jp/wp/?p=125</guid>
		<description><![CDATA[「独習PHP」を元に、要約メモしておきたいと思います。 代数演算子 演算子 概要 例 + ふたつの数値の和 $x + $y - ふたつの数値の差 $x &#8211; $y * ふたつの数値の積 $x * $y / ふた [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_7604" class="wp-caption alignnone" style="width: 360px"><a class="fancy" href="http://www.head-t.com/wp-content/uploads/2008/12/2008-12-08_02.jpg"><img src="http://www.head-t.com/wp-content/uploads/2008/12/2008-12-08_02-350x132.jpg" alt="【独習PHP】05_演算子" title="【独習PHP】05_演算子" width="350" height="132" class="size-medium wp-image-7604" /></a><p class="wp-caption-text">【独習PHP】05_演算子</p></div>
<p>「<a href="http://www.amazon.co.jp/gp/product/4798109819?ie=UTF8&amp;tag=headterminal-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4798109819" target="_blank">独習PHP</a><img src="http://www.assoc-amazon.jp/e/ir?t=headterminal-22&amp;l=as2&amp;o=9&amp;a=4798109819" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />」を元に、要約メモしておきたいと思います。</p>
<h3>代数演算子</h3>
<table>
<tr>
<th>演算子</th>
<th>概要</th>
<th>例</th>
</tr>
<tr>
<td>+</td>
<td>ふたつの数値の和</td>
<td>$x + $y</td>
</tr>
<tr>
<td>-</td>
<td>ふたつの数値の差</td>
<td>$x &#8211; $y</td>
</tr>
<tr>
<td>*</td>
<td>ふたつの数値の積</td>
<td>$x * $y</td>
</tr>
<tr>
<td>/</td>
<td>ふたつの数値の商</td>
<td>$x / $y</td>
</tr>
<tr>
<td>%</td>
<td>ふたつの数値の割り算を行い、その余り</td>
<td>$x % $y</td>
</tr>
<tr>
<td>++</td>
<td>前置加算（代入後に加算）</td>
<td>$i++</td>
</tr>
<tr>
<td>++</td>
<td>後置加算（代入前に加算）</td>
<td>++$i</td>
</tr>
<tr>
<td>&#8211;</td>
<td>前置減算（代入後に減算）</td>
<td>$i&#8211;</td>
</tr>
<tr>
<td>&#8211;</td>
<td>後置減算（代入前に減算）</td>
<td>&#8211;$i</td>
</tr>
</table>
<p><strong>++</strong>と<strong>&#8211;</strong>は指定された変数の値を増減するための演算子で、<strong>インクリメント</strong>（加算子）や<strong>デクリメント</strong>（減算子）とも言う。例えば次の2つの式は意味的に等価。</p>
<p>&nbsp;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$x</span><span style="color: #339933;">=</span><span style="color: #000088;">$X</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$x</span><span style="color: #339933;">++;</span></pre></td></tr></table></div>

</p>
<p>前置演算と後置演算は、加算（減算）した結果を代入してから値を返すか、値を返してから加算（減算）を行うかという点で異なる。</p>
<p>&nbsp;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$x</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$x</span><span style="color: #339933;">++.</span><span style="color: #0000ff;">'&lt;br /&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$x</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;br /&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">++</span><span style="color: #000088;">$x</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;br /&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$x</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;br /&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>1  2  3  3</p></blockquote>
<h3>代入演算子</h3>
<p>変数への代入を行うための演算子。代入演算子には、代数演算子と合わせた機能を提供する複合代入演算子も含まれる。</p>
<table>
<tr>
<th>演算子</th>
<th>概要</th>
<th>用例</th>
</tr>
<tr>
<td>=</td>
<td>値を変数などに代入する</td>
<td>$x=10</td>
</tr>
<tr>
<td>+=</td>
<td>左辺の値に右辺の値を加えたものを、左辺に代入する</td>
<td>$x+=10、$x＝$x+10</td>
</tr>
<tr>
<td>-=</td>
<td>左辺の値から右辺の値を引いたものを、左辺に代入する</td>
<td>$x-=10、$x＝$x-10</td>
</tr>
<tr>
<td>*=</td>
<td>左辺の値に右辺の値を掛けたものを、左辺に代入する</td>
<td>$x*=10、$x＝$x*10</td>
</tr>
<tr>
<td>/=</td>
<td>左辺の値を右辺の値で割ったものを、左辺に代入する</td>
<td>$x/=10、$x＝$x/10</td>
</tr>
<tr>
<td>%=</td>
<td>左辺の値を右辺の値を割った余りを、左辺に代入する</td>
<td>$x%=10、$x＝$x%10</td>
</tr>
<tr>
<td>.=</td>
<td>左辺の値に右辺の値を連結した文字列を、左辺に代入する</td>
<td>$x.=&#8221;A&#8221;、$x＝$x.&#8221;A&#8221;</td>
</tr>
</table>
<h3>比較演算子</h3>
<p>左辺と右辺の値を比較し、評価結果をTRUE/FALSEで返す。if、while、do&#8230;while命令の条件式で使用する。</p>
<table>
<tr>
<th>演算子</th>
<th>概要</th>
<th>例</th>
</tr>
<tr>
<td>==</td>
<td>左辺と右辺が等しい場合にTRUEを返す</td>
<td>$x==1</td>
</tr>
<tr>
<td>===</td>
<td>左辺と右辺が等しく、かつ同じデータ型の場合にTRUEを返す</td>
<td>
<p>$flag===TRUE</p>
</td>
</tr>
<tr>
<td>!=</td>
<td>左辺と右辺が等しくない場合にTRUEを返す</td>
<td>$x!=10</td>
</tr>
<tr>
<td>!==</td>
<td>左辺と右辺が等しくない、または同じデータ型でない場合にTRUEを返す</td>
<td>$flag!==TRUE</td>
</tr>
<tr>
<td><</td>
<td>左辺が右辺より小さい場合にTRUEを返す</td>
<td>$x<10</td>
</tr>
<tr>
<td>></td>
<td>左辺が右辺より大きい場合にTRUEを返す</td>
<td>$x>10</td>
</tr>
<tr>
<td><=</td>
<td>左辺が右辺以下のときにTRUEを返す</td>
<td>$x<=10</td>
</tr>
<tr>
<td>>=</td>
<td>左辺が右辺以上のときにTRUEを返す</td>
<td>$x>=10</td>
</tr>
<tr>
<td>?</td>
<td>（条件式）?（式1）:（式2）      条件式がTRUEの場合は式1、FALSEの場合は式2を返す</td>
<td>$x>10 ? &#8220;OK&#8221; : &#8220;NG&#8221;</td>
</tr>
</table>
<p><strong>?</strong>演算子は三項演算子とも呼ばれ、指定された条件式の真偽に応じて異なる式（値）を出力したい場合などに使用する。</p>
<h3>論理演算子</h3>
<p>複数の条件式を論理的に結合するための演算子。前項の比較演算子と組み合わせて使用するのが一般的。</p>
<table>
<tr>
<th>演算子</th>
<th>概要</th>
<th>例</th>
</tr>
<tr>
<td>&amp;&amp;（and）</td>
<td>
<p>左式/右式と双方がTRUEの場合にTRUEを返す</p>
</td>
<td>$x==10 &amp;&amp; $z==100</td>
</tr>
<tr>
<td>||（or）</td>
<td>左式/右式といずれかがTRUEの場合にTRUEを返す</td>
<td>$x==1 || $x==2</td>
</tr>
<tr>
<td>xor</td>
<td>左式/右式いずれかがTRUEで、かつ双方ともTRUEではない場合にTRUEを返す</td>
<td>$x==10 xor $x==100</td>
</tr>
<tr>
<td>!</td>
<td>
<p>式がFALSEである場合にTRUEを返す</p>
</td>
<td>!$flag</td>
</tr>
</table>
<p>AND演算子（&amp;とand）とOR演算子（||とor）がそれぞれ2つ用意されているのは、評価される際の優先順位が異なるため。</p>
<h3>ビット演算子</h3>
<p>ビット単位（整数を2進法で表したときの各桁）で論理演算を行うための演算子。</p>
<table>
<tr>
<th>演算子</th>
<th>概要</th>
<th>例</th>
</tr>
<tr>
<td>&amp;</td>
<td>左式/右式の双方でセットされているビットをセットする</td>
<td>10&amp;1 → 1010&amp;0001 → 0000 → 0</td>
</tr>
<tr>
<td>|</td>
<td>左式/右式のいずれかでセットされているビットをセットする</td>
<td>10|1 → 1010|0001 → 1011 → 11</td>
</tr>
<tr>
<td>^</td>
<td>左式/右式のいずれかでセットされており、かつ、双方にセットされていないビットをセットする</td>
<td>10^1 → 1010^0001 → 1011 → 11</td>
</tr>
<tr>
<td>~</td>
<td>ビットを反転させる</td>
<td>~10 → ~1010 → 0101 → -11</td>
</tr>
<tr>
<td><<</td>
<td>ビットを左にシフトする</td>
<td>10<<1 → 1010<<1 → 10100 → 20</td>
</tr>
<tr>
<td>>></td>
<td>ビットを右にシフトする</td>
<td>10>>1 → 1010>>1 → 0101 → 5</td>
</tr>
</table>
<h3>その他の演算子</h3>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<th>演算子</th>
<th>概要</th>
<th>例</th>
</tr>
<tr>
<td>.</td>
<td>文字列連結。左式と右式を連結する</td>
<td>$memo.$title</td>
</tr>
<tr>
<td>@</td>
<td>式の先頭に指定することでエラーメッセージを非表示にする</td>
<td>@fopen(&#8220;sample.dat&#8221;)</td>
</tr>
<tr>
<td>`</td>
<td>バッククォート（`）で囲んだブロックをシステムコマンドとして実行</td>
<td>`dir`</td>
</tr>
</table>
<p><strong>@</strong>演算子はエラー演算子とも言い、特定の命令の先頭に付加することで、その命令で発生したエラーメッセージの出力を抑制する。</p>
<p>&nbsp;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">print</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>Warming: Division by zero in ~atmark.php on line 2</p></blockquote>
<p>除算を0で行うことは許されていないので警告メッセージが表示されるが、print命令の先頭に@演算子をつけることで、警告メッセージが抑制され、表示されなくなる。</p>
<p>&nbsp;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #339933;">@</span><span style="color: #b1b100;">print</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<h3>演算子の優先順位</h3>
<table>
<tr>
<th>優先順位</th>
<th>演算子</th>
</tr>
<tr>
<td>1</td>
<td>new</td>
</tr>
<tr>
<td>2</td>
<td>[</td>
</tr>
<tr>
<td>3</td>
<td>! ~ ++ &#8212; (int) (double) (string) (array) (object) @</td>
</tr>
<tr>
<td>4</td>
<td>* / %</td>
</tr>
<tr>
<td>5</td>
<td>+ &#8211; .</td>
</tr>
<tr>
<td>6</td>
<td><< >></td>
</tr>
<tr>
<td>7</td>
<td>< <= > >=</td>
</tr>
<tr>
<td>8</td>
<td>== != === !==</td>
</tr>
<tr>
<td>9</td>
<td>&amp;</td>
</tr>
<tr>
<td>10</td>
<td>^</td>
</tr>
<tr>
<td>11</td>
<td>|</td>
</tr>
<tr>
<td>12</td>
<td>&amp;&amp;</td>
</tr>
<tr>
<td>13</td>
<td>||</td>
</tr>
<tr>
<td>14</td>
<td>? :</td>
</tr>
<tr>
<td>15</td>
<td>= += -= *= /= .= %= &amp;= |= ^= ~= <<= >>=</td>
</tr>
<tr>
<td>16</td>
<td>print</td>
</tr>
<tr>
<td>17</td>
<td>and</td>
</tr>
<tr>
<td>18</td>
<td>xor</td>
</tr>
<tr>
<td>19</td>
<td>or</td>
</tr>
<tr>
<td>20</td>
<td>,</td>
</tr>
</table>
<h3 class="link">外部リンク</h3>
<ul class="link">
<li class="link"><span class="icon">&raquo;</span><a href="http://www.php.net/manual/ja/" target="_blank">PHP: PHP マニュアル &#8211; Manual</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.head-t.com/2008/12/2008-12-08-02.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【独習PHP】04_定数</title>
		<link>http://www.head-t.com/2008/12/2008-12-08-01.html</link>
		<comments>http://www.head-t.com/2008/12/2008-12-08-01.html#comments</comments>
		<pubDate>Mon, 08 Dec 2008 08:49:59 +0000</pubDate>
		<dc:creator>大森</dc:creator>
				<category><![CDATA[ブログ]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tyoht.kir.jp/wp/?p=124</guid>
		<description><![CDATA[「独習PHP」を元に、要約メモしておきたいと思います。 変数は、その中身をプログラムの途中で変更/編集することが可能だが、定数は入れ物と中身がセットになっていて、途中で中身を変更できない入れ物。プログラム上、意味を持つ値 [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_7606" class="wp-caption alignnone" style="width: 360px"><a class="fancy" href="http://www.head-t.com/wp-content/uploads/2008/12/2008-12-08_01.jpg"><img src="http://www.head-t.com/wp-content/uploads/2008/12/2008-12-08_01-350x132.jpg" alt="【独習PHP】04_定数" title="【独習PHP】04_定数" width="350" height="132" class="size-medium wp-image-7606" /></a><p class="wp-caption-text">【独習PHP】04_定数</p></div>
<p>「<a href="http://www.amazon.co.jp/gp/product/4798109819?ie=UTF8&amp;tag=headterminal-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4798109819" target="_blank">独習PHP</a><img src="http://www.assoc-amazon.jp/e/ir?t=headterminal-22&amp;l=as2&amp;o=9&amp;a=4798109819" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />」を元に、要約メモしておきたいと思います。</p>
<p>変数は、その中身をプログラムの途中で変更/編集することが可能だが、定数は入れ物と中身がセットになっていて、途中で中身を変更できない入れ物。<strong>プログラム上、意味を持つ値</strong>にあらかじめ名前を付けておくしくみ。</p>
<p>&nbsp;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #990000;">define</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'TAX'</span><span style="color: #339933;">,</span> <span style="color:#800080;">1.05</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$price</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1000</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$sum</span><span style="color: #339933;">=</span><span style="color: #000088;">$price</span><span style="color: #339933;">*</span>TAX<span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sum</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>1050</p></blockquote>
<p><strong>define</strong>は定数を設定するための命令で、ここでは定数TAXを1.05という値で設定している。あとからTAXの値を変更する場合にも便利。また、1.05という数値だけだと何の数値なのか分からない（マジックナンバー）ので、定数で名前付けしておけばデータの意味が視覚的にも明確になる。</p>
<h3>定数の命令規則</h3>
<ul>
<li>定数名の先頭には<strong>$</strong>は<strong>使わない</strong>（×:$DATA、○:DATA）</li>
<li>定数名の先頭は英字かアンダースコアであること（×:9A、○:A9）</li>
<li>定数名の2文字目以降は、英数字、アンダースコアのいずれかであること（×:A9+、○:NAME）</li>
<li>変数名の大文字/小文字は区別<strong>されない</strong></li>
</ul>
<p>変数と区別するために定数は<strong>大文字</strong>にするのが通例。</p>
<h3>定義済みの定数</h3>
<table>
<tr>
<th>定数</th>
<th>概要</th>
</tr>
<tr>
<td>__FILE__</td>
<td>実行中のファイル名</td>
</tr>
<tr>
<td>__LINE__</td>
<td>実行中の行番号</td>
</tr>
<tr>
<td>__FUNCTION__</td>
<td>実行中の関数名</td>
</tr>
<tr>
<td>__CLASS__</td>
<td>実行中のクラス名</td>
</tr>
<tr>
<td>__METHOD__</td>
<td>実行中のメソッド名</td>
</tr>
<tr>
<td>DIRECTORY_SEPARATOR</td>
<td>ファイル区切り文字（Winは¥、Linuxは/）</td>
</tr>
<tr>
<td>RATH_SEPARATOR</td>
<td>パス区切り文字（Winは;、Linuxは:）</td>
</tr>
<tr>
<td>PHP_VERSION</td>
<td>使用しているPHPのバージョン</td>
</tr>
<tr>
<td>NULL</td>
<td>未定義</td>
</tr>
<tr>
<td>TRUE</td>
<td>真</td>
</tr>
<tr>
<td>FALSE</td>
<td>偽</td>
</tr>
</table>
<p>DIRECTORY_SEPARATOR や RATH_SEPARATOR など、環境に依存する情報をハードコーディングする代わりに定数で記述しておくと、サーバ環境を移動した場合にもコードを変更する必要がない。</p>
<h3>エスケープシーケンス</h3>
<p>キーボードから直接表現できない特殊文字。シングルクォーテーションの中では記述されたものがそのまま解釈されるので、必ずダブルクォーテーションで囲まれていなければならない。</p>
<table>
<tr>
<th>文字</th>
<th>概要</th>
</tr>
<tr>
<td>¥r</td>
<td>復帰</td>
</tr>
<tr>
<td>¥n</td>
<td>改行</td>
</tr>
<tr>
<td>¥t</td>
<td>タブ</td>
</tr>
<tr>
<td>¥$</td>
<td>ドル記号</td>
</tr>
<tr>
<td>¥¥</td>
<td>円記号/バックスラッシュ</td>
</tr>
<tr>
<td>¥&quot;</td>
<td>ダブルクォーテーション</td>
</tr>
</table>
<h3 class="link">外部リンク</h3>
<ul class="link">
<li class="link"><span class="icon">&raquo;</span><a href="http://www.php.net/manual/ja/" target="_blank">PHP: PHP マニュアル &#8211; Manual</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.head-t.com/2008/12/2008-12-08-01.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【独習PHP】03_スーパーグローバル変数</title>
		<link>http://www.head-t.com/2008/12/2008-12-07-01.html</link>
		<comments>http://www.head-t.com/2008/12/2008-12-07-01.html#comments</comments>
		<pubDate>Sun, 07 Dec 2008 09:14:40 +0000</pubDate>
		<dc:creator>大森</dc:creator>
				<category><![CDATA[ブログ]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tyoht.kir.jp/wp/?p=123</guid>
		<description><![CDATA[「独習PHP」を元に、要約メモしておきたいと思います。 $_POST POST形式のHTMLフォーム（ タグのmethodオプションが&#8221;POST&#8221;）から入力された情報（ポストデータ）を取得するため [...]]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_7608" class="wp-caption alignnone" style="width: 360px"><a class="fancy" href="http://www.head-t.com/wp-content/uploads/2008/12/2008-12-07_01.jpg"><img src="http://www.head-t.com/wp-content/uploads/2008/12/2008-12-07_01-350x132.jpg" alt="【独習PHP】03_スーパーグローバル変数" title="【独習PHP】03_スーパーグローバル変数" width="350" height="132" class="size-medium wp-image-7608" /></a><p class="wp-caption-text">【独習PHP】03_スーパーグローバル変数</p></div>
<p>「<a href="http://www.amazon.co.jp/gp/product/4798109819?ie=UTF8&#038;tag=headterminal-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4798109819" target="_blank">独習PHP</a><img src="http://www.assoc-amazon.jp/e/ir?t=headterminal-22&#038;l=as2&#038;o=9&#038;a=4798109819" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />」を元に、要約メモしておきたいと思います。</p>
<h3>$_POST</h3>
<p>POST形式のHTMLフォーム（</p>
<form>
タグのmethodオプションが&#8221;POST&#8221;）から入力された情報（ポストデータ）を取得するためのスーパーグローバル変数。
</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>form method<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;POST&quot;</span> action<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;POST2.php&quot;</span><span style="color: #339933;">&gt;</span>
名前：
  <span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;text&quot;</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;name&quot;</span> size<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;15&quot;</span> <span style="color: #339933;">/&gt;</span>
  <span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;checkbox&quot;</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;food[]&quot;</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;orange&quot;</span> <span style="color: #339933;">/&gt;</span>
  みかん
  <span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;checkbox&quot;</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;food[]&quot;</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;apple&quot;</span> <span style="color: #339933;">/&gt;</span>
  りんご
  <span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;checkbox&quot;</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;food[]&quot;</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;strawberry&quot;</span> <span style="color: #339933;">/&gt;</span>
  いちご
  <span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;submit&quot;</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;送信&quot;</span> <span style="color: #339933;">/&gt;</span>
<span style="color: #339933;">&lt;/</span>form<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

</p>
<blockquote>
<form method="" action="">
    名前：</p>
<input type="text" name="name" size="15" />
<input type="checkbox" name="food[]" value="orange" />
    みかん</p>
<input type="checkbox" name="food[]" value="apple" />
    りんご</p>
<input type="checkbox" name="food[]" value="strawberry" />
    いちご</p>
<input name="submit" type="button" value="送信" />
  </form>
</blockquote>
<p>上記のようなHTMLフォームから入力された値を取得する場合は、</p>
<p>
<strong>post2.php</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">名前：<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">print</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
好きな食べ物：<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #990000;">print_r</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'food'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>名前：山田 好きな食べ物：Array ( [0]=>orange [1]=>apple [2]=>strawberry )</p></blockquote>
<p>$_POSTの中身は連想配列になっているので、個々の要素値にアクセスするには<strong>$_POST['要素名']</strong>のようにする。チェックボックスやリストボックスのように同名の要素が複数の値を持つ場合には、要素を<strong>名前[]</strong>のように指定する。print_r命令ではなく、個々の値にアクセスする場合は、</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'food'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span></pre></td></tr></table></div>

</p>
<p>とする。</p>
<h3>$_GET</h3>
<p>クエリ情報を取得するためのスーパーグローバル変数。クエリ情報とは、URLの末尾以降（?〜）に付加された<strong>キー名=値</strong>のセットのことをいう。<strong>キー名=値</strong>のセットを<strong>&amp;</strong>で連結して、複数の情報を送信することも可能。</p>
<p>
<strong>get.php</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">名前：<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">print</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
性別：<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">print</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'sex'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<p>上記のget.phpに対して、</p>
<p>
<code>http://localhost/~user/get.php?name=Ohmori&amp;sex=male</code>
</p>
<p>でアクセスすると</p>
<blockquote><p>名前：Ohmori 性別：male</p></blockquote>
<p>と表示される。</p>
<h4>クエリ情報の制約</h4>
<ul>
<li><strong>送信可能なデータサイズに制限がある</strong> ポストデータには原則としてサイズ制限がないのに対して、クエリ情報のデータサイズはWebサーバが受け取ることができるURLの長さに制約される。一般的には最大でも数百バイト程度。</li>
<li><strong>予約文字やマルチバイト文字は使用できない</strong> ポストデータでは原則としてあらゆる文字データを扱うことが可能だが、クエリ情報ではファイル名との区切り文字である<strong>?</strong>をはじめ、<strong>&amp;</strong>や<strong>%</strong>、空白、マルチバイト文字（日本語）などは使用できない。これらがクエリ情報に含まれている可能性がある場合には、あらかじめ無害な文字列（%xxの形式）に変換する必要がある。<strong>urlencode</strong>という命令でこうした変換処理（URLエンコード）を行うことができる。</li>
<li><strong>データが露出する</strong> ポストデータはリクエスト情報の本体として送信されるので問題ないが、クエリ情報はその性質上、ブラウザのアドレス欄にそのまま露出してしまうし、サーバのログに記録させる場合がある。ログインパスワードのような情報をクエリ情報を介してやりとりするのは好ましくない。</li>
</ul>
<h3>$_FILES</h3>
<p>アップロードしたファイルに関する情報を取得するためのスーパーグローバル変数。ファイルのアップロード機能を作成することができる。</p>
<p><strong>file1.php</strong></p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>form method<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;POST&quot;</span> action<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;file2.php&quot;</span> enctype<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;multipart/form-data&quot;</span><span style="color: #339933;">&gt;</span>
ファイルのパス<span style="color: #339933;">:</span>
<span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;file&quot;</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;uploaded&quot;</span> size<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;50&quot;</span> <span style="color: #339933;">/&gt;</span>
<span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;submit&quot;</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;アップロード&quot;</span> <span style="color: #339933;">/&gt;</span>
<span style="color: #339933;">&lt;/</span>form<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

</p>
<blockquote>
<form method="" action="" enctype="multipart/form-data">
    ファイルのパス:</p>
<input type="file" name="uploaded" size="50" />
<input type="submit" value="アップロード" />
  </form>
</blockquote>
<p><strong>file2.php</strong></p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #990000;">move_uploaded_file</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'uploaded'</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tmp_name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'./doc/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'uploaded'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'アップロードに成功しました'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<p>ファイルをアップロードするには、</p>
<form>
タグのenctypeオプションに必ず<strong>&#8220;multipart/form-data&#8221;</strong> をセットする必要がある。<strong>&#8216;./doc/&#8217;</strong>と<strong>$_FILES['uploaded']['name']</strong>とをつなぐ「<strong>.</strong>」は、文字列連結演算子と呼ばれ、2つの文字列を連結する際に利用する。 PHPでクライアントから受け取ったファイルを移動するには、<strong>move_uploaded_file命令</strong>を使用する。その一般的な構文は以下。
</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">move_uploaded_file</span><span style="color: #009900;">&#40;</span>対象となるファイルのパス<span style="color: #339933;">,</span> 移動先のパス<span style="color: #009900;">&#41;</span></pre></td></tr></table></div>

</p>
<p>対象となるファイルのパスは、スーパーグローバル変数を介して取得することができる。$_FILESは、$_POSTや$_GETとは異なり、2次元配列として与えられ、以下の表のような情報を保持している。<strong>&#8216;file&#8217;</strong>は、HTMLフォームで指定された要素名。</p>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<th>要素名</th>
<th>概要</tH><br />
  </tr>
<tr>
<td>$_FILES['file']['name']</td>
<td>オリジナルのファイル名</td>
</tr>
<tr>
<td>$_FILES['file']['tmp_name']</td>
<td>サーバ上で管理された一時的なファイル名</td>
</tr>
<tr>
<td>$_FILES['file']['size']</td>
<td>アップロードファイルのサイズ（バイト）</td>
</tr>
<tr>
<td>$_FILES['file']['type']</td>
<td>アップロードファイルのMIMEタイプ（ファイルの種類）</td>
</tr>
<tr>
<td>$_FILES['file']['error']</td>
<td>エラーコード</td>
</tr>
</table>
<p>アップロードがうまくいかない場合の原因を知るためには、<strong>$_FILES['file']['error']</strong>を介してエラーコードを取得する。$_FILESによって返されるエラーコードは以下。</p>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<th>定数</th>
<th>値</th>
<th>概要</tH><br />
  </tr>
<tr>
<td>UPLOADED_ERR_OK</td>
<td>0</td>
<td>アップロード成功</td>
</tr>
<tr>
<td>UPLOADED_ERR_INI_SIZE</td>
<td>1</td>
<td>アップロードファイルのサイズがupload_max_filesizeパラメータ（php.ini）の指定値を超過</td>
</tr>
<tr>
<td>UPLOADED_ERR_FILE_SIZE</td>
<td>2</td>
<td>アップロードファイルのサイズがHTMLフォームのhiddenフィールド&#8221;MAX_FiLE_SIZE&#8221;で指定された値を超過</td>
</tr>
<tr>
<td>UPLOADED_ERR_PARTIAL</td>
<td>3</td>
<td>アップロードファイルの一部しかアップロードされていない</td>
</tr>
<tr>
<td>UPLOADED_ERR_NO_FILE</td>
<td>4</td>
<td>アップロード失敗</td>
</tr>
</table>
<p>UPLOAD_ERR_INI_SIZE、UPLOAD_ERR_NO_FILEが返された場合には、php.iniの以下のパラメータを見直す。</p>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<th>パラメータ</th>
<th>概要</tH><br />
  </tr>
<tr>
<td>upload_max_filesize</td>
<td>アップロードのサイズ制限</td>
</tr>
<tr>
<td>memory_limit</td>
<td>スクリプトが使用可能なメモリサイズ</td>
</tr>
<tr>
<td>post_max_size</td>
<td>ポストデータのサイズ制限</td>
</tr>
<tr>
<td>max_execution_time</td>
<td>スクリプトのタイムアウト時間（秒）</td>
</tr>
</table>
<p>アップロードサイズの制限に引っかかっていなくてもポストデータのサイズ制限に引っかかっている場合もある。また、異動先のディレクトリに書き込み権限がない場合もエラーになるので、パーミッションを確認する。 UPLOAD_ERR_FILE_SIZEが返された場合には、HTMLフォーム内に以下の記述がないかを確認し、値を編集する。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;hidden&quot;</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;MAX_FILE_SIZE&quot;</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;30000&quot;</span> <span style="color: #339933;">/&gt;</span></pre></td></tr></table></div>

</p>
<h3>$_SERVER</h3>
<p>クライアントの種類や対応言語、サーバから送信されたコンテンツの種類やデータサイズなどの情報が、クライアント/サーバそれぞれで内部的に生成され、リクエスト/レスポンス時に送信されている。このような付随情報はヘッダ情報と呼ばれ、クライアント側から送信されるものは<strong>リクエストヘッダ</strong>、サーバ側から送信されるものは<strong>レスポンスヘッダ</strong>と呼ばれる。スーパーグローバル変数$_SERVERで取得できるのは、このうちの<strong>リクエストヘッダ</strong>。</p>
<p><strong>主なリクエストヘッダ</strong></p>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<th>ヘッダ名</th>
<th>概要</th>
</tr>
<tr>
<td>HTTP_ACCEPT</td>
<td>クライアントがサポートしているコンテンツの種類（優先順位）</td>
</tr>
<tr>
<td>HTTP_ACCEPT_LANGUAGE</td>
<td>クライアントが対応している言語（優先順位）</td>
</tr>
<tr>
<td>HTTP_AUTHORIZATION</td>
<td>認証情報</td>
</tr>
<tr>
<td>HTTP_COKKIE</td>
<td>クライアントに保存されているクッキーデータを送信</td>
</tr>
<tr>
<td>HTTP_HOST</td>
<td>要求先のホスト名</td>
</tr>
<tr>
<td>HTTP_IF_MODIFIED_SINCE</td>
<td>指定された日時以降にコンテンツが更新されている場合にのみ、サーバからデータを受信</td>
</tr>
<tr>
<td>HTTP_PROXY_AUTHORIZATION</td>
<td>プロキシサーバ用の認証情報</td>
</tr>
<tr>
<td>HTTP_RANGE</td>
<td>要求するリソースの範囲</td>
</tr>
<tr>
<td>HTTP_REFERER</td>
<td>リンク先のURI</td>
</tr>
<tr>
<td>HTTP_USER_AGENT</td>
<td>クライアントの種類</td>
</tr>
</table>
<p>たとえば、User-Agentヘッダを取得する場合は次のようになる</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_USER_AGENT'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<p>Webサーバであらかじめ定義された<strong>定義済みサーバ変数</strong>を取得することも可能。Apacheを利用している場合は、次のような情報を取得することができる。</p>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<th>変数名</tH></p>
<th>概要</th>
<th>戻り値（例）</th>
</tr>
<tr>
<td>DOCUMENT_ROOT</td>
<td>ドキュメントルート</td>
<td>C:/Program Files/htdocs</td>
</tr>
<tr>
<td>GATEWAY_INTERFACE</td>
<td>
<p>CGIのリビジョン</p>
</td>
<td>CGI/1.1</td>
</tr>
<tr>
<td>PHP_SELF</td>
<td>実行中のスクリプト</td>
<td>/samples/server.php</td>
</tr>
<tr>
<td>QUERY_STRING</td>
<td>クエリ文字列</td>
<td>category=PHP</td>
</tr>
<tr>
<td>REMOTE_ADDR</td>
<td>クライアントのIPアドレス</td>
<td>127.0.0.1</td>
</tr>
<tr>
<td>REMOTE_PORT</td>
<td>クライアントのポート番号</td>
<td>2856</td>
</tr>
<tr>
<td>REQUEST_METHOD</td>
<td>HTTPメソッド</td>
<td>POST</td>
</tr>
<tr>
<td>REQUEST_URI</td>
<td>指定されたURI</td>
<td>/samples/server.php?category=PHP</td>
</tr>
<tr>
<td>SCRIPT_FIMENAME</td>
<td>実行中のスクリプト</td>
<td>C:/Program Files/htdocs/samples/server.php</td>
</tr>
<tr>
<td>SCRIPT_NAME</td>
<td>実行中のスクリプト</td>
<td>/samples/server.php</td>
</tr>
<tr>
<td>SERVER_NAME</td>
<td>サーバ名</td>
<td>localhost</td>
</tr>
<tr>
<td>SERVER_PORT</td>
<td>サーバのポート</td>
<td>80</td>
</tr>
<tr>
<td>SERVER_PROTOCOL</td>
<td>プロトコル名、リビジョン</td>
<td>HTTP/1.0</td>
</tr>
<tr>
<td>SERVER_SIGNATURE</td>
<td>サーバのバージョン</td>
<td>Apache/2.0.55(Win32)PHP/5.1.1 Server at localhost Port 80</td>
</tr>
<tr>
<td>SERVER_SOFTWARE</td>
<td>サーバのソフトウェア</td>
<td>Apache/2.0.55(Win32)PHP/5.1.1</td>
</tr>
</table>
<h3>$_ENV</h3>
<p>サーバ側で設定された環境変数を取得するためのスーパーグローバル変数。環境変数とはサーバ固有のパラメータを表すもので、プログラム実行時に参照するパスやオプション値などを設定する。たとえば環境変数PATHはコマンドラインなどでプログラムを読み出す場合にデフォルトで検索するディレクトリを指定する。</p>
<p><strong>$_ENVを利用したサーバ環境変数の取得例</strong></p>
<p><strong>env.php</strong></p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_ENV</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Path'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>C:¥WINDOWS¥system32;&#8230;</p></blockquote>
<h3>$_COOKIE</h3>
<p>クライアントに保存されているクッキーの値を取得するためのスーパーグローバル変数。セキュリティ的な理由から、一般的にはサーバはクライアント上のファイルを勝手に読み書きできないが、クッキーだけは例外で、自由にテキストを読み書きすることができる。</p>
<p><strong>cookie1.php</strong></p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">&lt;form method=&quot;POST&quot; action=&quot;cookie2.php&quot;&gt;
E-Mailアドレス：
  &lt;input type=&quot;text&quot; name=&quot;email&quot; size=&quot;30&quot; value=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_COOKIE</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'email'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; /&gt;
  &lt;input type=&quot;submit&quot; value=&quot;送信&quot; /&gt;
&lt;/form&gt;</pre></td></tr></table></div>

</p>
<p><strong>cookie2.php</strong></p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #990000;">setcookie</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'email'</span><span style="color: #339933;">,</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'email'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">60</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">60</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">24</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'クッキー&quot;email&quot;を保存しました'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<p>cookie1.phpにアクセスしてE-Mailアドレスを入力すると「クッキー&#8221;email&#8221;を保存しました」が表示される。もう一度cookie1.phpにアクセスすると、初回アクセスで入力したE-Mailアドレスがデフォルト表示されている。</p>
<p><strong>setcookie命令</strong>の一般的な構文は次のとおり</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">setcookie</span><span style="color: #009900;">&#40;</span>クッキー名<span style="color: #339933;">,</span> 値 <span style="color: #009900;">&#91;</span><span style="color: #339933;">,</span>有効期限 <span style="color: #009900;">&#91;</span><span style="color: #339933;">,</span>対象のホスト <span style="color: #009900;">&#91;</span><span style="color: #339933;">,</span>対象のパス<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span></pre></td></tr></table></div>

</p>
<p>対象ホスト/パスを設定した場合には、該当のクッキーをどのホスト/パスから参照可能にするかを限定できる。デフォルトでは、現在のホスト配下のすべてのパスから読み込むことが可能。有効期限はタイムスタンプ値として指定する。タイムスタンプとは「1970年1月1日からの経過秒」を表す値。上記の例では、取得したタイムスタンプに「60秒×60秒×24時間×90日」の値を加算することで、クッキーの有効期限を90日に設定した。90日を経過したクッキーは自動的に破棄されるようになる。クッキーの有効期限を省略した場合には、ブラウザを閉じたタイミングで破棄され、有効期限を現在よりも前に設定した場合は、その場で破棄される。</p>
<h3>$_SESSION</h3>
<p>前項のクッキーにはいくつかの問題点がある。</p>
<ul>
<li><strong>データがクライアント側で保存される</strong><br />
クッキーで管理されたデータはクライアント側で自由に削除したり改ざんしたりすることが可能。そのため、クッキー情報をもとにアプリケーション全体の挙動を左右するような判定を行うのは危険。</li>
<li><strong>実データがネットワーク上を流れる</strong><br />
通信経路上にリクエスト情報をロギングするような通信機器やソフトウェアがある場合には、クッキー情報が漏洩してしまう可能性がある。</li>
</ul>
<p>そこで、ユーザがブラウザを開いている間だけ情報を維持したいという場合には、よりセキュアな<strong>セッション</strong>というしくみを利用する。</p>
<ol>
<li>【クライアント】1回目のリクエスト→【サーバ】</li>
<li>【クライアント】←セッションIDの発行【サーバ】</li>
<li>【クライアント】2回目以降の要求→【サーバ】</li>
<li>【サーバ】セッションIDをキーにセッション情報を取得</li>
<li>【クライアント】←セッション情報を送信【サーバ】</li>
</ol>
<p>クッキーと異なる点は以下</p>
<ul>
<li>データがサーバ側で保存される</li>
<li>ネットワーク上を流れるのはセッションIDだけ</li>
</ul>
<p>したがって、データがクライアント側で改ざん/削除される可能性が原則としてないし、実データがネットワーク上を行き来しないので、データを盗聴される危険性も相対的に低下する。</p>
<p><strong>session1.php</strong></p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #990000;">session_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'sample'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'セッション情報（テスト）'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'セッション情報&quot;sample&quot;が保存されました。'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<p><strong>session2.php</strong></p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #990000;">session_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'セッション情報&quot;sample&quot;の値は「'</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'sample'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'」です。'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<p>最初にsession1.phpにアクセスした後、session2.phpにアクセスすると、sesion1.phpで登録したセッション情報がsession2.phpで参照される。</p>
<blockquote><p>セッション情報&#8221;sample&#8221;の値は「<strong>セッション情報（テスト）</strong>」です。</p></blockquote>
<p>もしページ毎にsession_start命令を実行するのが面倒な場合は、php.iniで<strong>session.auto_start</strong>をOnにすることで省略することも可能。ただし、セッションを利用しないページでもセッションが有効になってしまう点に注意する。必要なページだけでセッションを有効にすれば、サーバリソースをいくらか節約することができる。</p>
<h3 class="link">外部リンク</h3>
<ul class="link">
<li class="link"><span class="icon">&raquo;</span><a href="http://www.php.net/manual/ja/" target="_blank">PHP: PHP マニュアル &#8211; Manual</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.head-t.com/2008/12/2008-12-07-01.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【独習PHP】02_配列</title>
		<link>http://www.head-t.com/2008/09/2008-09-25-02.html</link>
		<comments>http://www.head-t.com/2008/09/2008-09-25-02.html#comments</comments>
		<pubDate>Thu, 25 Sep 2008 03:06:00 +0000</pubDate>
		<dc:creator>大森</dc:creator>
				<category><![CDATA[ブログ]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tyoht.kir.jp/wp/?p=69</guid>
		<description><![CDATA[「独習PHP」を元に、要約メモしておきたいと思います。 配列 仕切りのある入れ物のこと。ひとつの変数に対してひとつの値を持つものをスカラー変数といい、配列のように複数の値を持つことができる入れ物のことを非スカラー変数とい [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_7727" class="wp-caption alignnone" style="width: 360px"><a class="fancy" href="http://www.head-t.com/wp-content/uploads/2008/09/2008-09-25_02.jpg"><img src="http://www.head-t.com/wp-content/uploads/2008/09/2008-09-25_02-350x132.jpg" alt="【独習PHP】02_配列" title="【独習PHP】02_配列" width="350" height="132" class="size-medium wp-image-7727" /></a><p class="wp-caption-text">【独習PHP】02_配列</p></div>
<p>「<a href="http://www.amazon.co.jp/gp/product/4798109819?ie=UTF8&#038;tag=headterminal-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4798109819" target="_blank">独習PHP</a><img src="http://www.assoc-amazon.jp/e/ir?t=headterminal-22&#038;l=as2&#038;o=9&#038;a=4798109819" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />」を元に、要約メモしておきたいと思います。</p>
<h3>配列</h3>
<p>仕切りのある入れ物のこと。ひとつの変数に対してひとつの値を持つものを<strong>スカラー変数</strong>といい、配列のように複数の値を持つことができる入れ物のことを<strong>非スカラー変数</strong>という。</p>
<p>
<strong>array命令</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>要素<span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span>要素<span style="color: #cc66cc;">2</span><span style="color: #339933;">,...</span><span style="color: #009900;">&#41;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>キー<span style="color: #cc66cc;">1</span><span style="color: #339933;">=&gt;</span>要素<span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span>キー<span style="color: #cc66cc;">1</span><span style="color: #339933;">=&gt;</span>要素<span style="color: #cc66cc;">1</span><span style="color: #339933;">,...</span><span style="color: #009900;">&#41;</span></pre></td></tr></table></div>

</p>
<h3>通常配列</h3>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$data</span><span style="color: #339933;">=</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'ひとつ'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'ふたつ'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'みっつ'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'よっつ'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>よっつ</p></blockquote>
<h3>連想配列</h3>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$data</span><span style="color: #339933;">=</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ひとつ'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'1個'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ふたつ'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'2個'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'みっつ'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'3個'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'みっつ'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>3個</p></blockquote>
<p>キーが省略された場合には、<strong>その時点でのキーの最大値＋1</strong>が振り分けられる。 デフォルトでは「0,1,2,3,&#8230;」だけど、下記の場合キー2を飛ばしてキー3が割り振られているので、次からはキー4,5,6,&#8230;という風に割り振られていく。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$data</span><span style="color: #339933;">=</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'1'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'one'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'3'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'three'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'four'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'five'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'six'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>six</p></blockquote>
<h3>ネスト構造（入れ子）</h3>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$data</span><span style="color: #339933;">=</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'A'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'B'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'C'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'D'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'E'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'F'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>E</p></blockquote>
<h3>ブラケット（[]）構文</h3>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$data</span><span style="color: #339933;">=</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ひとつ'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ふたつ'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'みっつ'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'いくつ'</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//キー0の要素を書き換え</span>
<span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'よっつ'</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//最後に要素を追加</span>
<span style="color: #b1b100;">print</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&lt;br /&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//改行する</span>
<span style="color: #b1b100;">print</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>いくつ よっつ</p></blockquote>
<h3>print_r命令</h3>
<p>非スカラー変数の内容を視覚的に見やすい形で出力する。 ブラウザ上では改行されていない状態で表示されるので、ブラウザでソースを表示すると見やすい。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$data</span><span style="color: #339933;">=</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ひとつ'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ふたつ'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'みっつ'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'いくつ'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'よっつ'</span><span style="color: #339933;">;</span>
<span style="color: #990000;">print_r</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>Array ( [0] => いくつ [1] => ふたつ [2] => みっつ [3] => よっつ )</p></blockquote>
<h3 class="entry-tags-header">外部リンク</h3>
<ul class="link-list">
<li class="link"><span class="icon">&raquo;</span><a href="http://www.php.net/manual/ja/" target="_blank">PHP: PHP マニュアル &#8211; Manual</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.head-t.com/2008/09/2008-09-25-02.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【独習PHP】01_変数</title>
		<link>http://www.head-t.com/2008/09/2008-09-25-01.html</link>
		<comments>http://www.head-t.com/2008/09/2008-09-25-01.html#comments</comments>
		<pubDate>Thu, 25 Sep 2008 03:05:00 +0000</pubDate>
		<dc:creator>大森</dc:creator>
				<category><![CDATA[ブログ]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tyoht.kir.jp/wp/?p=68</guid>
		<description><![CDATA[詳しい説明はあとあと！ 決まりごとという型を作ってしまうと、自分で自分のクビを絞めることになる場合も。 例えば「仕事を始める前には必ずストレッチをやろう」という型を作ると、当然それを守れない時がでてくるわけです。その日は [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_7729" class="wp-caption alignnone" style="width: 360px"><a class="fancy" href="http://www.head-t.com/wp-content/uploads/2008/09/2008-09-25_01.jpg"><img src="http://www.head-t.com/wp-content/uploads/2008/09/2008-09-25_01-350x132.jpg" alt="【独習PHP】01_変数" title="【独習PHP】01_変数" width="350" height="132" class="size-medium wp-image-7729" /></a><p class="wp-caption-text">【独習PHP】01_変数</p></div>
<p>詳しい説明はあとあと！ 決まりごとという型を作ってしまうと、自分で自分のクビを絞めることになる場合も。 例えば「仕事を始める前には必ずストレッチをやろう」という型を作ると、当然それを守れない時がでてくるわけです。その日はずっと気持ちが悪い。ずっと気持ちが悪いのは、<strong>型という不快になるためのスイッチ</strong>を自分で仕掛けたからですよね。</p>
<p>という話とは全く関係ない上に唐突なのですが、PHPの勉強を始めたいと思います。</p>
<p>PHPのテストには、<a href="http://www.panic.com/jp/coda/" target="_blank">CODA</a>（Mac版のみです）というソフトを使うことにします。 画面を上下２分割にして上をエディタ、下をプレビューにする。こうしておくと保存するたびにプレビュー画面が更新されるので、ほぼリアルタイムでの動作確認が可能です。</p>
<p>「.php」や「.ini」ファイルの文字コードを<strong>EUC-JP</strong>、改行コードを<strong>LF</strong>に統一したほうが良いとのことなので、とりあえずそれに従います。</p>
<p>まずはこれをやらないと始められないということで、</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Hello, World!'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>Hello, World!</p></blockquote>
<p>それでは、PHPの勉強を始めたいと思います。以下、「<a href="http://www.amazon.co.jp/gp/product/4798109819?ie=UTF8&#038;tag=headterminal-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4798109819" target="_blank">独習PHP</a><img src="http://www.assoc-amazon.jp/e/ir?t=headterminal-22&#038;l=as2&#038;o=9&#038;a=4798109819" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />」を元に、要約メモしておきたいと思います。</p>
<h3>コメントタグ</h3>
<p>単一行は<strong>//</strong>もしくは<strong>#</strong>（非推奨）、複数行は<strong>/*</strong>〜<strong>*/</strong>。</p>
<h3>変数</h3>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$data</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'これが変数です'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>これが変数です</p></blockquote>
<h3>変数名の命名規則</h3>
<blockquote>
<ul>
<li>変数名は<strong>$</strong>で始まること（×：data、○：$data）</li>
<li>変数名の２文字目は英字かアンダースコアであること（×：$9_z、○：$z_9）</li>
<li>変数名の３文字目以降は、英数字、アンダースコアのいずれかであること（×：$%&#038;、$名前、○：$name、$btn_01）</li>
<li>変数名の大文字/小文字は区別される</li>
</ul>
</blockquote>
<h3>ダブルクォーテーション（&#8221;）と、シングルクォーテーション（&#8217;）の違い</h3>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$title</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'これ'</span><span style="color: #339933;">;</span> <span style="color: #000088;">$data1</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;「 <span style="color: #006699; font-weight: bold;">$title</span> 」は変数です。&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$data2</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'「 $title 」は変数です。'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>「 これ 」は変数です。 「 $title 」は変数です。</p></blockquote>
<p>ダブルクォーテーション（&#8221;）は変数として解釈されるが、シングルクォーテーション（&#8217;）は文字列としてそのまま出力される。変数名の前後はスペースで明確に区切ること。</p>
<h3>可変変数</h3>
<p>先頭に<strong>$</strong>をふたつつけることで、<strong>変数名を変数によって決める</strong>ことができる変数のこと。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$x</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'title'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$title</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'タイトル名です'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$$x</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

</p>
<blockquote><p>タイトル名です</p></blockquote>
<h3 class="link">外部リンク</h3>
<ul class="link">
<li class="link"><span class="icon">&raquo;</span><a href="http://www.php.net/manual/ja/" target="_blank">PHP: PHP マニュアル &#8211; Manual</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.head-t.com/2008/09/2008-09-25-01.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac OS X（10.5.4）のローカル環境で PHP を動かす方法</title>
		<link>http://www.head-t.com/2008/09/2008-09-07-01.html</link>
		<comments>http://www.head-t.com/2008/09/2008-09-07-01.html#comments</comments>
		<pubDate>Sun, 07 Sep 2008 07:02:00 +0000</pubDate>
		<dc:creator>大森</dc:creator>
				<category><![CDATA[ブログ]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tyoht.kir.jp/wp/?p=63</guid>
		<description><![CDATA[Mac OS X（10.5.4）のローカル環境で PHP を動かす方法をメモまでに。 Finder で cmd + shift + G（フォルダへ移動） を開いて /etc と入力。こうしないと、通常はアクセスできないの [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_7735" class="wp-caption alignnone" style="width: 360px"><a class="fancy" href="http://www.head-t.com/wp-content/uploads/2008/09/2008-09-07_01.jpg"><img src="http://www.head-t.com/wp-content/uploads/2008/09/2008-09-07_01-350x132.jpg" alt="Mac OS X（10.5.4）のローカル環境で PHP を動かす方法" title="Mac OS X（10.5.4）のローカル環境で PHP を動かす方法" width="350" height="132" class="size-medium wp-image-7735" /></a><p class="wp-caption-text">Mac OS X（10.5.4）のローカル環境で PHP を動かす方法</p></div>
<p>Mac OS X（10.5.4）のローカル環境で PHP を動かす方法をメモまでに。</p>
<p>Finder で</p>
<p><code>cmd + shift + G（フォルダへ移動）</code></p>
<p>を開いて</p>
<p><code>/etc</code></p>
<p>と入力。こうしないと、通常はアクセスできないので。</p>
<p>Apache2 というフォルダの中にある httpd.conf というファイルを見つけ出す。<br />
ここまでのパスは</p>
<p><code>/private/etc/apache2/httpd.conf</code></p>
<p>この</p>
<p><code>httpd.conf</code></p>
<p>を一旦デスクトップなどにコピーして、テキストエディタで開く。</p>
<p>「php」で検索すると、114行目あたりに</p>
<p><code>#LoadModule php5_module libexec/apache2/libphp5.so</code></p>
<p>があるので、先頭のコメントアウト「#」を削除して保存。</p>
<p>元の場所の</p>
<p><code>/private/etc/apache2/httpd.conf</code></p>
<p>に上書き保存する。その際、パスワードを求められるので入力。</p>
<p>システム環境設定の「共有」を開いて、「Web共有」のチェックをONにする。</p>
<p>ローカルの</p>
<p><code>ユーザ/ユーザ名/サイト/</code></p>
<p>に、試しに</p>
<p><code>&lt;?php phpinfo(); ?&gt;</code></p>
<p>と入力した info.php などを用意する。</p>
<p>ブラウザから</p>
<p><code>http://localhost/~ユーザ名/info.php</code></p>
<p>でアクセスして、問題なく表示されれば、ビバ！PHP！</p>
<h3 class="link">外部リンク</h3>
<ul class="link">
<li class="link"><span class="icon">&raquo;</span><a href="http://www.padmacolors.org/archives/2007/10/30_120457.php" target="_blank">phpを使えるようにする</a></li>
<li class="link"><span class="icon">&raquo;</span><a href="http://www.php.net/manual/ja/" target="_blank">PHP: PHP マニュアル &#8211; Manual</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.head-t.com/2008/09/2008-09-07-01.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  www.head-t.com/tag/php/feed ) in 9.66794 seconds, on Feb 9th, 2012 at 4:11 pm JST. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 9th, 2012 at 5:11 pm JST -->
