PHP超入門 (12)


さて、前々回より、PHPプログラムの基礎となる変数というものについてお
話をさせていただいていますが、変数には、

・スカラー型変数
・配列型変数
・連想配列(ハッシュ)

という3種類が主としてあります。

前回までで、スカラー型と配列型の変数について細かく説明してきましたが、
今回は、変数の最後である、連想配列(ハッシュ)についてお話したいと思い
ます。

この、連想配列(ハッシュ)は配列型配列に似ていますので、理解がしやすい
と思いますし、ホームページ上でフォームを使って文字や数値をやり取りする
時にも大活躍します。



■連想配列(ハッシュ)についてイメージ的な説明

以前にもお話しましたが、ハッシュは、引き出しがたくさんあるたんすで、引
き出しに見出し(名前)が張ってあるたんす、といった変数です。

ハッシュを作るには、まず、

 $nedan = array("りんご"=>"100円","みかん"=>"30円","すいか"=>"150円",
                 "メロン"=>"500円","いちご"=>"300円")

と書きます。

すなわち、array()の中に、「=>」を挟んで、右側に変数の値、左側に変数の
中の値を指定する時の名前(上の例で言うと、引き出しに張ってある見出し)
を記述します。


前回の配列型変数の場合は、変数に入れるものは、「りんご」〜「いちご」の
果物の名前だけでしたが、今回のハッシュの場合は、それに加えて、各果物の
値段を$nedanという変数の中に代入しています。


この命令を行ったあとの$kudamonoという変数の中身のイメージは

     $nedan
 +------------+
 |    100円   | ← $nedan["りんご"]
 +------------+
 |     30円   | ← $nedan["みかん"]
 +------------+
 |    150円   | ← $nedan["すいか"]
 +------------+
 |    500円   | ← $nedan["メロン"]
 +------------+
 |    300円   | ← $nedan["いちご"]
 +------------+

といった感じになります。


これで、変数に格納されたイメージは分かると思いますが、問題は、これらの
1つ1つを如何に取り出してブラウザに表示させるかです。

ここで、前回と同じようにイタズラで単純に次のように書いたPHPプログラ
ムを試してみます。

----------------------------------------------------------------------
<?php
$nedan = array("りんご"=>"100円","みかん"=>"30円","すいか"=>"150円"
                  ,"メロン"=>"500円","いちご"=>"300円");

print($nedan);
?>
----------------------------------------------------------------------

余裕のある人は、上のプログラムを066-1.phpという名前で、C:\Inetpub\wwwr
oot\phpフォルダに保存して、

ブラウザのアドレス欄にhttp://localhost/php/066-1.phpと入力してみてくだ
さい。


結果として示されるのは、前回と同様

----------
 Array
----------

という、意味の分からない、文字が表示されるのみで、格納されている果物の
値段は1つも表示されません。


  実際の例はコチラ → http://www.e-and-a.ws/05/067-1.php

※ちなみに、これは、前回同様、変数$nedanはスカラー型ではなく、配列です
 よ、ということを意味しています。


また、ハッシュの場合、array(○=>●,△=>▲,□=>■,☆=>★,・・・)という
書き方だと、横にズラ〜と長くなってしまうので、別の書き方があります。
それは、

-------------------------------

$nedan["りんご"] = "100円";
$nedan["みかん"] = "30円";
$nedan["すいか"] = "150円";
$nedan["メロン"] = "500円";
$nedan["いちご"] = "300円";

--------------------------------

という具合に変数に入れる要素を一行づつ分けて、記述していく方法です。
どちらの方法でも、$nedanに入る要素の中身はおんなじですので、ご自分の趣
味とケースに応じて使い分けてください。



■ハッシュから値を取り出す

上記のようにして、$nedanという変数に値は入ったわけですが、次はそれをど
うやって値を取り出して、プログラム中で活用するかです。

以下にその例題を示します。


----------------------------------------------------------------------
<?php
$nedan = array("りんご"=>"100円","みかん"=>"30円","すいか"=>"150円"
                  ,"メロン"=>"500円","いちご"=>"300円");

print("りんごの値段は".$nedan["りんご"]."です");
?>
-----------------------------------------------------------------------

※print()の中にある「.」は文字列を結合させる働きがあり、「りんごの値
 段は」と「$nedan["りんご"]の中身」と「です」の3個の内容を結合させて
 横一列に表示させることができます。



これを、067-2.phpという名前で、C:\Inetpub\wwwroot\phpフォルダに保存し
て、


ブラウザのアドレス欄にhttp://localhost/php/067-2.phpと入力してみてくだ
さい。


そうするとブラウザには

----------------------------
りんごの値段は100円です
----------------------------

と表示されると思います。


  実際の例はコチラ → http://www.e-and-a.ws/05/067-2.php

マァ、いとつだけ表示するのもなんですから、$kakakuに入って内容をすべて
表示させてみましょう

----------------------------------------------------------------------
<?php
$nedan = array("りんご"=>"100円","みかん"=>"30円","すいか"=>"150円"
                  ,"メロン"=>"500円","いちご"=>"300円");

print("りんごの値段は".$nedan["りんご"]."です"."<br>");
print("みかんの値段は".$nedan["みかん"]."です"."<br>");
print("すいかの値段は".$nedan["すいか"]."です"."<br>");
print("メロンの値段は".$nedan["メロン"]."です"."<br>");
print("いちごの値段は".$nedan["いちご"]."です"."<br>");
?>
----------------------------------------------------------------------
※「<br>」はHTMLではおなじみの、改行を示すタグです


これを067-3.phpという名前で、C:\Inetpub\wwwroot\phpフォルダに保存して、


ブラウザのアドレス欄にhttp://localhost/php/066-3.phpと入力してみてくだ
さい。

そうすると、ブラウザには

----------------------------
りんごの値段は100円です
すかんの値段は30円です
すいかの値段は150円です
メロンの値段は500円です
いちごの値段は300円です
----------------------------

と表示されると思います


  実際の例はコチラ → http://www.e-and-a.ws/05/067-3.php




■PHPだけの特徴

これは本論には関係ないのですが、PHPは数字と文字が混在している並びで
も、数字の部分を判断して抜き取り、計算ができてしまいます。

例えば、$nedan["りんご"]には「100円」、$nedan["すいか"]には「150円」と
いう「文字」入っていますがが、これはあくまでも文字であって、数字ではあ
りません。

通常、他のプログラミング言語では、「100円+150円」という計算はできず、
どうしても「100+150」という数字だけの場合しか、計算は取り扱えません。

しかし、PHPの場合は、「100円+150円」という計算が出来てしまいます。

試しに、下のスクリプトを実行してみてください。

画面にはきちんと、「りんごとすいかの合計は250円です」と表示されます。


-------------------------------------------------------------------------------
<?php
$nedan = array("りんご"=>"100円","みかん"=>"30円","すいか"=>"150円"
                  ,"メロン"=>"500円","いちご"=>"300円");

print("りんごとすいかの合計は".($nedan["りんご"] + $nedan["すいか"])."円です");
?>
-------------------------------------------------------------------------------



  実例はコチラ → http://www.e-and-a.ws/05/067-4.php

ただ、私個人の考えでは、これはイレギュラーな方法であって、便利ですが、
あまり使わない方がよいでしょう。

新しく「パソコン(PC)初心者向け パソコンサポートサービス」を始めました。
詳細は専用サイトを御覧ください。

上記の内容はシリーズとしてメールマガジンで配信しています。

42歳のオヤジでもできた!パソコンサーバー化計画 (マガジンID:0000114576)

メールマガジン登録  メールアドレス:
メールマガジン解除  メールアドレス:

Powered by まぐまぐ

copyright(c) 2002-2007 E&A工房 All rights reserved.