@blog.justoneplanet.info

日々勉強

PHP Variables and Constants(変数と定数)

PHPにおいては変数宣言構文が存在しない。変数は値が代入された時点で作成される

■変数名

^[a-zA-Z_][a-zA-Z0-9_]*こんな感じ。つまり変数名の先頭に数字は使えない。そして、頭には「$」をつけること!

大文字と小文字は区別される。

■可変変数

これは強力だが、コードが読みづらく非常に危険な気もする。個人的には敢えて使わないでおこう。

<?php
$name = 'foo';
$$name = 'bar';
print($foo);//bar

$name = '123';
$$name = '456';
print(${'123'});//456

function myFunc(){
    //code
}
$f = 'myFunc';
$f();
?>

■変数が存在しているかを確認

言語機構のisset()を使う。

<?php
if(isset($val)){
    //code
}
?>

isset()は変数が存在し、nullでない時にtrueを返す。従って以下のようなコードで問題が起こる可能性がある。このような問題を防ぐ為には、アルゴリズムを見直すか、is_nullを使う。

$tmpAry = array(1 => null, 2 => 'sample');
foreach($tmpAry as $key => $value){
    if(isset($value)/* || is_null($value)*/){
        //code
    }
}

また、以下のようにキーを使用して変数のテストをする方法も考えられる。

$tmpAry = array(1 => null, 2 => 'sample');
foreach($tmpAry as $key => $value){
    if(array_key_exixts($key, $tmpAry)){
        //code
    }
}

各関数について

bool isset(mixed $var)
変数がセットされているかどうかを返す。実際には関数ではなく言語構造である。

■参照

変数のクローンは作成されず、メモリ上の住所(参照)が格納される

<?php
$dog = 'Jack';
$cat = &$dog;
print($cat);//Jack
$cat = 'Emily';
print($dog);//Emily
?>

■定数

  • 値はスカラー値(論理値、整数、浮動小数点数、文字列)
  • 一度値を設定したら、後から変更することは出来ない
  • 全てのスコープから参照できる
  • 定数名は^[a-zA-Z_][a-zA-Z0-9_]*こんな感じ。但し、慣例として大文字が用いられることが多い
  • 大文字と小文字は区別される
<?php
define('EMAIL', 'sample@sample.com');
echo EMAIL;//sample@sample.com
?>

コメントはまだありません»

No comments yet.

RSS feed for comments on this post.TrackBack URL

Leave a comment