shinsuke: 2008年9月アーカイブ

array_searchで0(ゼロ)が返ってくるとif文は?

私はプログラマというわけではないのですが、よく大学や高校の後輩からPHPという言語について尋ねられます。
最近、たまたま、それぞれ異なる後輩から同じ質問をされたのでちょっと紹介しておきたいと思いまして。
実は私も以前、はまったことが・・・

PHPには、配列の要素に特定の文字列が含まれているか検索するために、array_searchという関数が用意されています。
比較的よく使うのですが、int型の0(ゼロ)が返ってくる場合を考慮しないと失敗します。

例えば、$test_array = ("岡山", "倉敷", "津山"); の場合、
array_search("倉敷", $test_array); の結果は1 ですが、
array_search("岡山", $test_array); の結果は0 となります。

この0(ゼロ)が曲者でして、仮に配列に岡山が含まれているかどうか調べたいときに

if (array_search("岡山", $test_array)) echo "含まれています";
else echo "含まれていません";

なんて書いちゃうと「含まれていません」と表示されるのです・・・。
if文にとっては、int型の0も、boolean型のFALSEも、同じFALSEなのです。

というわけで、下記のように修正すると期待通りの結果を得られます。

if (array_search("岡山", $test_array) !== FALSE) echo "含まれています";
else echo "含まれていません";

=== は値が等しく、同じ型という比較演算子で、
!== は値が等しくないか、同じ型ではないという比較演算子です。

これならint型の0が返ってきたとしても、FALSEではないこと(「岡山」が含まれること)が判別可能です。

本当にちょっとしたことなのですが、頭の片隅に置いておくときっと助かる場面に遭遇します。
精進、精進。

| コメント(2) | トラックバック(0)

なぜ人形のスカートの中を確認するのか

タイトルは気にしないでください。確認したのは私ではありません。本当に。

さて、今日は所用で私の母校でもある県立岡山朝日高等学校に行って来ました。
ちょうど平日で同窓会事務局も開いていたので「朝日高校リカちゃん」をゲット!
以前からその存在は知っていたのですが、卒業式や文化祭といったイベントの時は事務局が留守で、なかなか入手する機会に恵まれませんでした。

というわけで簡単なレビューを。

 

朝日高校リカちゃんパッケージ表パッケージはオリジナルデザインで、春の桜が舞う朝日高 校門のイラストがベースになっています。裏面は通常のリカちゃん人形と同じく注意書きやタカラの連絡先が印刷されています。
わざわざJANコード(バーコード)が刷ってあるのに驚きましたが・・・市販するの?

 

朝日高校リカちゃんリカちゃんのほうは若干茶髪なのが校則違反なんじゃないかと心配ですが、通常のリカちゃんと変わりません。(ここで変わってたらリカちゃんじゃないか・・・)
てっきり人形を彩色しただけの制服かと思っていたのですが、きちんと生地を縫って作られた冬服のレプリカを着ていることに感動しました。いい仕事してますねぇ。
スカートのボックスプリーツの本数とか細かいところもよく再現されています。

良い記念になりました。

ちなみに現在の在庫状況は「あと2年程度で完売」だそうです。
保存用、布教用にあと2体は入手しておきたいですね!
完売後の再生産は未定らしいのですが、個人的には夏服が好きなので次はぜひ夏服でお願いします。>同窓会事務局様

先日知ったのですが、制服レプリカを着たリカちゃんは朝日高校リカちゃん以外にも全国に20校程度存在するらしいです。みんな母校が好きなんですね。良いことです。

| コメント(0) | トラックバック(0)
前のアーカイブはshinsuke: 2008年6月です。