PHP: 2008年3月アーカイブ

プログラムを書いていて、下記のように配列を初期化することがよくあります。

配列 = [
要素1,
要素2,
];

このときいつもモヤモヤするのが、

最後の要素の後にカンマ(,)付けても大丈夫なんだっけ?

ということ。
つまり、この配列は要素が2個としてちゃんと解釈されるのかな?という不安です。


よい機会なので、JavaScript、PHP、Perlで挙動の違いをまとめてみました。

Perlの場合

@ary = ("foo", "bar",);
$count = @ary;
print $count;
→ 結果  2

PHPの場合
$ary = array( "foo", "bar", );
echo count($ary);
→ 結果  2

JavaScript (Firefox) の場合
var ary = ["foo","bar",];
alert(ary.length);
→ 結果 : 2

JavaScript (IE6) の場合
var ary = ["foo","bar",];
alert(ary.length);
→ 結果 : 3

結論。

IEのJavaScriptI(=JScript)は、最後のカンマのあとにもう一つ空の要素を生成する。


というわけで本日のまとめ。


 [FOO,BAR,] を

 3個と数える

 JScript


字あまり ><

無職3ヶ月目に突入しますたw

 

友人が独立して受託Web開発をやっているので、そこに弟子入りしました。

PHPを教えてもらいながら初めてWEBサイト開発をやりました。

弟子入りなので、無償ですw  (来月の家賃払えるのか>オレ)

 

延べ1ヶ月かけて、友人に助けてもらいながら小規模なWebサイトを作りました。

内容は、資格試験の自己採点サービスです。

 

最初の方は、PHPを勉強しながらさくさくスクリプトを書く感じで、スピードは遅いものの順調でした。

初期でつまづいたのはこれです。

 

セッション変数? $_SESSION ? 何それ?

 

「セッション変数」という、PerlにはないPHP独自のセッション管理機構を理解するのが難しかったです。


私のようなPerl初級プログラマは、クッキーしかしらないので、

「 は?セッション変数?何それ?

 HTTPにはステータス情報がないからクッキーでセッションIDをやりとりするのは知ってる。
 けど、セッション変数って何?クッキーのことじゃないの?」

というありさま(><)

 

結局、

「セッションIDに紐づくユーザの情報を、Apacheがメモリ上に保持してくれるので、ページ間で変数を共有できる」

ということだったようです。
いわゆるショッピングカートとかのあれですね。

これを理解するのに3日かかりました。

 

だってPerl/CGIには、Apacheのメモリ上にデータを保存するなんて発想はできないんですもの。

しかし覚えると便利ですね、$_SESSION。

根気よく教えてくれた友人に感謝。^^

foreachを使ってますか?

初級プログラマに意外と知られていないforeach。

何が便利かというと、
カウンタや添え字(index)を意識せずに、配列の要素に対してアクセスし、何らかの処理をすることができます。

foreachを使わない場合、

for(i=0;i<=n;i++){ print 配列名[i]; }
のように、配列の要素数とカウンタを使ったダサイ記述をするハメになります。
一方、foreachを使えば楽ができます。

私はこのforeachが大好きです。
foreachのおかげで、配列が好きになりました。

以下、Perl , PHP, VBA, JavaScriptで、配列の全要素を表示する例です。

Perl  
foreach my $item (@items) { print $item; }
PHP
foreach ( $items as $item){ echo $item; }
JavaScript
for(var i in items){ alert(items[i]);}
VBA  
For Each item In items
  MsgBox item
Next


※注1 Perlの場合は、さらに短く書けます。
foreach (@items){ print $_ ;}  または
for(@items){ print $_;}      または
print for @items; 

※注2 VBAのこのコードは、厳密にはコレクションといって、配列とは別のものです。 しかし実質的には配列のように使えます。

このアーカイブについて

このページには、2008年3月以降に書かれたブログ記事のうちPHPカテゴリに属しているものが含まれています。

前のアーカイブはPHP: 2008年2月です。

次のアーカイブはPHP: 2008年5月です。