<?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>いちばんやさしいゲームの作り方 &#187; PHP</title>
	<atom:link href="http://www.game-create.com/archives/tag/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.game-create.com</link>
	<description>文系の人でも、数理学がわからない人でもゲームプログラミングをマスターできるブログ</description>
	<lastBuildDate>Tue, 08 Jun 2010 01:28:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>GW 出かける方は BEAT.B で帰省ラッシュゲージが常に満タン</title>
		<link>http://www.game-create.com/archives/3271</link>
		<comments>http://www.game-create.com/archives/3271#comments</comments>
		<pubDate>Wed, 05 May 2010 12:36:53 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Maps API]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mr. Children]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[コード]]></category>
		<category><![CDATA[デバッグ]]></category>
		<category><![CDATA[月月火水木金金]]></category>
		<category><![CDATA[関数]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=3271</guid>
		<description><![CDATA[仕事の疲れから謎のタイトルを登録してみる。

うちは小さい頃から GW には旅行とか行かなかったし、両親の実家も近所なので里帰りするということもなく、大型連休のありがたみが他人より少ないかもしれません。
本日は Goog [...]]]></description>
			<content:encoded><![CDATA[<p>仕事の疲れから謎のタイトルを登録してみる。</p>
<p><span id="more-3271"></span></p>
<p>うちは小さい頃から GW には旅行とか行かなかったし、両親の実家も近所なので里帰りするということもなく、大型連休のありがたみが他人より少ないかもしれません。</p>
<p>本日は Google Maps API を使ったプログラムを開発しておったのですが、リファレンスを見ながら「この関数あって助かった！！！」と叫び祈り箒星です（２曲飛ばしやがった）。 API を作った方も「この関数は必要だろう」という頭で持って設計いただいたということでしょうか。今日は悩んだ割に書いたコードが少ない日になりました。</p>
<p>Firefox でデバッグできる分、 PHP より JavaScript の方が開発が楽です。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/3271/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>仕事でフリーフォーマットに悩まされた…</title>
		<link>http://www.game-create.com/archives/2863</link>
		<comments>http://www.game-create.com/archives/2863#comments</comments>
		<pubDate>Mon, 08 Feb 2010 14:35:40 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[仕事]]></category>
		<category><![CDATA[月月火水木金金]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=2863</guid>
		<description><![CDATA[コピペしまくって、間違って C-k 押してしまったんでしょうね、バグが取れずにハマってしまいました。
&#60;?php
$hasError =
$results = $object-&#62;someMethod(); [...]]]></description>
			<content:encoded><![CDATA[<p>コピペしまくって、間違って C-k 押してしまったんでしょうね、バグが取れずにハマってしまいました。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-var">$hasError</span><span class="hl-code"> =
</span><span class="hl-var">$results</span><span class="hl-code"> = </span><span class="hl-var">$object</span><span class="hl-code">-&gt;</span><span class="hl-identifier">someMethod</span><span class="hl-brackets">()</span><span class="hl-code">;
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-reserved">empty</span><span class="hl-brackets">(</span><span class="hl-var">$results</span><span class="hl-brackets">)) {
  </span><span class="hl-var">$hasError</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p><span id="more-2863"></span></p>
<p>本当は次のような感じです。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-var">$hasError</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
</span><span class="hl-var">$results</span><span class="hl-code"> = </span><span class="hl-var">$object</span><span class="hl-code">-&gt;</span><span class="hl-identifier">someMethod</span><span class="hl-brackets">()</span><span class="hl-code">;
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-reserved">empty</span><span class="hl-brackets">(</span><span class="hl-var">$results</span><span class="hl-brackets">)) {
  </span><span class="hl-var">$hasError</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>最初のも動いてしまうので嫌な感じです。</p>
<p>２月は（２月も）いろいろと諦めました。今週と来週は勝負の２週間です。ふたつある仕事のうち、ひとつは納品できましたので、残りも頑張ります。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/2863/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C/C++ の標準ライブラリって便利だなぁ…、ということが言いたいだけです</title>
		<link>http://www.game-create.com/archives/2533</link>
		<comments>http://www.game-create.com/archives/2533#comments</comments>
		<pubDate>Wed, 02 Dec 2009 08:12:48 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[コンピュータ]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[コード]]></category>
		<category><![CDATA[フレームワーク]]></category>
		<category><![CDATA[ライブラリ]]></category>
		<category><![CDATA[関数]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=2533</guid>
		<description><![CDATA[CakePHP のプロマネとリードデベロッパーが新たに立ち上げた Lithium ( Lithium: the most rad php framework ) というプロジェクトがありまして、ゲームとは関係ないので詳し [...]]]></description>
			<content:encoded><![CDATA[<p>CakePHP のプロマネとリードデベロッパーが新たに立ち上げた Lithium ( <a href="http://li3.rad-dev.org/" class="external">Lithium: the most rad php framework</a> ) というプロジェクトがありまして、ゲームとは関係ないので詳しくは述べませんが、状況によっては追っかけてみるのも面白いと思います。</p>
<p>データの取得はクラスメソッド、レコードはインスタンスに対応するようになったみたいで、すっきりした印象があります。よくわからんのですが DAO のパターンに近いのでしょうか？</p>
<p>…と、まぁ、こういった感じで、今まで使っていた技術を交換したくなったり、状況に逆らえず交換しなければならなくなることがあります（どういう経緯かわからないけどお客さんに指定されてるとか）。ただ、今までのノウハウや資産が生きないのもよくないことと思います（例が悪かったです、 CakePHP → Lithium だったら生きそうな資産が多くあります）。なんとか一個人でも力になれる枯れさせるための活動ができないものか日々足りない脳味噌を回す日々…</p>
<p>そんな経緯から、どんなライブラリ、どんなフレームワーク、どんな言語を使うケースでも、「こういうの毎回書いているなぁ…」と嫌になるロジックをまとめようかと思うようになりました（ちなみに、これはゲームにも関係するのですが、このサイトではやりません）。</p>
<p>前ふり終わり。</p>
<p><span id="more-2533"></span></p>
<p>「状況が異なっても毎回書くような共通のロジックをまとめる」といっても、低の視点で見ると「共通」ではない何かに依存しているものです。たとえば、「変数 address の中に &#8220;Tokyo&#8221; が含まれているか？」という処理を実現する場合、まぁ、ポインタを進めて文字列を分析しても良いのですが、ほとんどの場合 strpos() とか使うのではと思います。「共通」と言いながらその言語の標準関数を使っていて、これに依存しているとほかの言語に持っていけません。…とは言うものの C/C++ の標準関数くらいだったら、ほかの言語にも似たような機能があるとみなして大丈夫ではなかろうかとも思い、前に買った書籍なんかを読み直して調べておりました。</p>
<p>結果、見逸れていただけで C/C++ の標準関数というのは（思っていたより）いろんなことができることが分かりました。とくに日付関連が便利でした。「これ、 PHP に持ってった時、対応する関数が見つかるだろうか？」などと心配にもなるほどです。</p>
<p>失敗です。考え直さねば…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/2533/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>後悔先に立たず &#8211; boost::shared_ptr</title>
		<link>http://www.game-create.com/archives/2425</link>
		<comments>http://www.game-create.com/archives/2425#comments</comments>
		<pubDate>Sun, 08 Nov 2009 14:14:39 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[Boost]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ポインタ]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=2425</guid>
		<description><![CDATA[仕事は WEB 系なんですが、ゲーム制作に興味ある方とお話ししていてスマートポインタ（ Boost の shared_ptr ）の話題になることがありました。
普段 C/C++ に触れていないと、その存在意義もわかりにく [...]]]></description>
			<content:encoded><![CDATA[<p>仕事は WEB 系なんですが、ゲーム制作に興味ある方とお話ししていてスマートポインタ（ Boost の shared_ptr ）の話題になることがありました。</p>
<p>普段 C/C++ に触れていないと、その存在意義もわかりにくいでしょうし、ほとんど理解してもらうのをあきらめていたところがあるのですが、よく考えたらハードリンクを例にとると簡単に伝わったのかもしれません。</p>
<p><span id="more-2425"></span></p>
<p>なんでそのとき気づかなかったのかと後悔しそうになります（残念ながら、もう、会う機会もない方々だと思いますし）。たぶん、本気でゲーム作る用事がなかったので問題ないと思いますが、珍しく良い例えがある分野だっただけにひらめきの悪さが悔やまれます。</p>
<p>ちょっと昔のことを思い出してみた日曜日の夜更け。お仕事、今日も終わりませんでした。明日からもがんばります。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/2425/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>strcmp() の戻り値が分かりづらい</title>
		<link>http://www.game-create.com/archives/2333</link>
		<comments>http://www.game-create.com/archives/2333#comments</comments>
		<pubDate>Thu, 15 Oct 2009 08:06:43 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[アセンブラ]]></category>
		<category><![CDATA[ポーランド記法]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=2333</guid>
		<description><![CDATA[strcmp(str1, str2) としたとき、もし str1 < str2 の場合は負数が返りますが、この関数もたまに使うだけなので覚えられません。

アセンブラで大小の比較をする際、引き算をする（ A &#8211 [...]]]></description>
			<content:encoded><![CDATA[<p>strcmp(str1, str2) としたとき、もし str1 < str2 の場合は負数が返りますが、この関数もたまに使うだけなので覚えられません。</p>
<p><span id="more-2333"></span></p>
<p>アセンブラで大小の比較をする際、引き算をする（ A &#8211; B で結果がマイナスなら B の方が大きい、ゼロなら同じ、それ以外なら A の方が大きい）のですが、そのポリシーでもって戻り値としているのでしょうか。ちなみに x86 系の CPU なら cmp 命令とかそんな感じだったと思います。</p>
<p>それとも、「逆ポーランド記法っぽく見えなくもないだろ？」というデザインなのか…</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">strcmp</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">9.0.4</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-identifier">detectFlashVersion</span><span class="hl-brackets">())</span><span class="hl-code"> &gt;= </span><span class="hl-number">0</span><span class="hl-brackets">) { </span><span class="hl-comment">// → ( 9.0.4 detectFlashVersion() &gt;= ) っぽい？
  </span><span class="hl-reserved">die</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Flash プレイヤーは 9.0.4.x 以降を使ってほしいの</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>どっちも考えにくい。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/2333/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ソフトウェア開発に幸せな未来はあるのか: 第15話　コーディング規約は必要か？</title>
		<link>http://www.game-create.com/archives/2324</link>
		<comments>http://www.game-create.com/archives/2324#comments</comments>
		<pubDate>Tue, 13 Oct 2009 16:00:22 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ウェブログ]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[コーディング]]></category>
		<category><![CDATA[変数]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=2324</guid>
		<description><![CDATA[コメント欄の「アプリケーションハンガリアン」に反応しました。
ソフトウェア開発に幸せな未来はあるのか: 第15話　コーディング規約は必要か？

我々が嫌悪するハンガリアン記法というのはシステムハンガリアンというくくりなん [...]]]></description>
			<content:encoded><![CDATA[<p>コメント欄の「<a href="http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%B3%E3%82%AC%E3%83%AA%E3%82%A2%E3%83%B3%E8%A8%98%E6%B3%95#.E3.82.A2.E3.83.97.E3.83.AA.E3.82.B1.E3.83.BC.E3.82.B7.E3.83.A7.E3.83.B3.E3.83.8F.E3.83.B3.E3.82.AC.E3.83.AA.E3.82.A2.E3.83.B3" class="external">アプリケーションハンガリアン</a>」に反応しました。</p>
<p><a href="http://el.jibun.atmarkit.co.jp/happy/2009/10/15-176d.html" class="external">ソフトウェア開発に幸せな未来はあるのか: 第15話　コーディング規約は必要か？</a></p>
<p><span id="more-2324"></span></p>
<p>我々が嫌悪するハンガリアン記法というのはシステムハンガリアンというくくりなんですね。どっちかというと亜種らしいです。</p>
<p>仕事で他人の書いたプログラムを読むとき、配列（と思われる）変数へアクセスしないといけないことがあるかと思います。この時、連番になってる配列なのか、そうでないのか、隙間があるのか、ないのかとか考えないといけないことがたくさんありすぎて、「変数名でわかるようにしてほしいなぁ」なんて思うことがあるのですが、これは何ハンガリアンで解決するのでしょうか…</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-comment">// 他人が書いたコード
</span><span class="hl-var">$someArray</span><span class="hl-code"> = </span><span class="hl-identifier">SomeDataListUpFunction</span><span class="hl-brackets">()</span><span class="hl-code">;
</span><span class="hl-comment">// ↑見るからに配列っぽい

//// 以下、俺が追加したコード ////

// 連番を振って出力する
</span><span class="hl-reserved">var </span><span class="hl-var">$i</span><span class="hl-code"> = </span><span class="hl-number">1</span><span class="hl-code">; </span><span class="hl-comment">// 連番になってないかもしれないので添え字は使わない
</span><span class="hl-reserved">foreach </span><span class="hl-brackets">(</span><span class="hl-var">$someArray </span><span class="hl-reserved">as </span><span class="hl-var">$someElement</span><span class="hl-brackets">) {
  </span><span class="hl-identifier">printf</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">%d %s</span><span class="hl-special">\n</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-var">$i</span><span class="hl-code">++, </span><span class="hl-var">$someElement</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/2324/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>goto 文を使わないでブロックの残りをスキップする</title>
		<link>http://www.game-create.com/archives/2091</link>
		<comments>http://www.game-create.com/archives/2091#comments</comments>
		<pubDate>Thu, 20 Aug 2009 17:26:33 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[制御構文]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=2091</guid>
		<description><![CDATA[深いブロックは脱出できませんが、こんなのどうでしょう。
do {
  …
  // なんらかのエラー
  if (error) {
    break;
  }
  …
} while (false);

 [...]]]></description>
			<content:encoded><![CDATA[<p>深いブロックは脱出できませんが、こんなのどうでしょう。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-reserved">do </span><span class="hl-brackets">{</span><span class="hl-code">
  …
  </span><span class="hl-comment">// なんらかのエラー
  </span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">error</span><span class="hl-brackets">) {
    </span><span class="hl-reserved">break</span><span class="hl-code">;
  </span><span class="hl-brackets">}</span><span class="hl-code">
  …
</span><span class="hl-brackets">} </span><span class="hl-reserved">while </span><span class="hl-brackets">(</span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
<p><span id="more-2091"></span></p>
<p>for 文の中とか深いブロック抜けられませんが、そもそも goto 文が使えない状況（ PHP とか）では重宝することもあります（トランザクションに関する処理を書くときとか）。</p>
<p>ただ、これをやると周りの技術者から「これは何の意味があるん？」と問い詰められること必死です。はい、今です。</p>
<p>2009/08/21 追記： while のスペルミスを修正しました。 yomogi さん、ありがとうございます。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/2091/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>専用サーバ構築計画発動</title>
		<link>http://www.game-create.com/archives/2003</link>
		<comments>http://www.game-create.com/archives/2003#comments</comments>
		<pubDate>Sun, 26 Jul 2009 11:53:28 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[オリジナルゲーム制作]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[trac]]></category>
		<category><![CDATA[ホスティングサービス]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=2003</guid>
		<description><![CDATA[同人作品の開発環境とファイルサーバ（ FTP, WebDAV ）、メールサーバを兼ねた専用サーバの用意を検討しております。決して自前で用意はしないのです。サーバ管理（特にハードウェア）の大変さは仕事で痛感しておりますゆえ [...]]]></description>
			<content:encoded><![CDATA[<p>同人作品の開発環境とファイルサーバ（ FTP, WebDAV ）、メールサーバを兼ねた専用サーバの用意を検討しております。決して自前で用意はしないのです。サーバ管理（特にハードウェア）の大変さは仕事で痛感しておりますゆえ。</p>
<p><span id="more-2003"></span></p>
<p>ファイルのやりとり、 trac （ライクなプログラム）のホスティング、 PHP と DB が動くホームページスペースなど、それぞれだったら安くて品質の良いサービスがあるのですが、全部できるとなるとやはり用意するしかないかという判断になりました。</p>
<p>さくらの CentOS, HDD160GB で &yen;7,800 が安くて良いかなと思っているのですが、月額 &yen;7,800 という金額だけ見るとさすがに躊躇してしまいます（もう、年額なんか計算したくない）。まぁ、他にも用途はありますので元を取ってると強く感じられるまで使い倒したいと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/2003/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>やっぱり中括弧によるブロックは誤解があるようです</title>
		<link>http://www.game-create.com/archives/1777</link>
		<comments>http://www.game-create.com/archives/1777#comments</comments>
		<pubDate>Tue, 02 Jun 2009 15:42:41 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[スコープ]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1777</guid>
		<description><![CDATA[PHP などではブロックを作ってもスコープになりません。
&#60;?php
{
  $var = 123;
}
echo $var; // 123 と出る
?&#62;

コード中で突然ブロックに遭遇すると C/ [...]]]></description>
			<content:encoded><![CDATA[<p>PHP などではブロックを作ってもスコープになりません。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-brackets">{
  </span><span class="hl-var">$var</span><span class="hl-code"> = </span><span class="hl-number">123</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">echo </span><span class="hl-var">$var</span><span class="hl-code">; </span><span class="hl-comment">// 123 と出る
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p><span id="more-1777"></span></p>
<p>コード中で突然ブロックに遭遇すると C/C++ 経験者の方にとっては不思議に見えるようです（先日もお仕事でそんなお話しになりました）。最近では、「見やすくなるなら積極的にブロックを使おう」と書いている書籍もあるほどでして、私の場合は、「コピペするならこの範囲でやれ」という意思表示でも使っています。</p>
<p>Java とかだとどうなんでしょう？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1777/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>assert() にエラーメッセージを渡す</title>
		<link>http://www.game-create.com/archives/1463</link>
		<comments>http://www.game-create.com/archives/1463#comments</comments>
		<pubDate>Mon, 30 Mar 2009 09:14:40 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[アサーション]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1463</guid>
		<description><![CDATA[Byerkut さんのお気に入り関数 assert() 。しかしながら、これの出力は式になってしまうので意味を理解するのにちょっと時間がかかります。これにエラーメッセージを渡して意味を伝えやすくしようというテクニックとの [...]]]></description>
			<content:encoded><![CDATA[<p>Byerkut さんのお気に入り関数 assert() 。しかしながら、これの出力は式になってしまうので意味を理解するのにちょっと時間がかかります。これにエラーメッセージを渡して意味を伝えやすくしようというテクニックとのことです。</p>
<p><span id="more-1463"></span></p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-identifier">assert</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">argument は１以上じゃないとだめだ</span><span class="hl-quotes">&quot;</span><span class="hl-code"> &amp;&amp; </span><span class="hl-brackets">(</span><span class="hl-number">0</span><span class="hl-code"> &lt;</span><span class="hl-identifier">argument</span><span class="hl-brackets">))</span><span class="hl-default">;
</span><span class="hl-identifier">assert</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">pointer は NULL は受け取らない</span><span class="hl-quotes">&quot;</span><span class="hl-code"> &amp;&amp; </span><span class="hl-brackets">(</span><span class="hl-identifier">pointer</span><span class="hl-code"> != </span><span class="hl-prepro">NULL</span><span class="hl-brackets">))</span><span class="hl-default">;</span></pre></div></div>
<p>文字列は真と認識される点を利用したテクニックですね。「到達してはいけない」系の assert() は次のように書けます。</p>
<div class="hl-surround" style="height:16.8px;"><div class="hl-main"><pre><span class="hl-identifier">assert</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-quotes">&quot;</span><span class="hl-string">ここに到達してはいけない！絶対 break されるはずなんだ！</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
<p>ちなみに PHP だと文字列は０と認識される可能性が高い点に注意です。 PHP は文字列中に数字が一個も入ってないと０なのです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1463/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

