Document
サイトについて
リンクフリー
個人ご利用の場合はリンクフリーです。備忘録等に各種ドキュメントへのリンク。ご自由にご利用ください。
転載
出典元表記(当社名orリンク記載)の際は転載等ご自由にご利用ください。
ライセンス
このページの内容の一部は、Google が作成、提供しているコンテンツをベースに変更・複製したもので、クリエイティブ・コモンズの表 示 3.0 ライセンスに記載の条件に従って使用しています。
きょうのことば
" 子曰く、過ちて改めず、是れを過ちと謂う ""孔子"
PHP再入門3 |
$a = "スコープのテスト"; // 関数外での変数定義(グローバルスコープ) function test_scope1(){ echo $a; // 変数の参照(ローカルスコープの変数を探してしまう) } test_scope1(); // 関数を参照してみる <?php function test_scope2(){ $b = "ローカルスコープの変数"; // 関数内での変数定義(ローカルスコープ) }; test_scope2(); // 関数の参照により変数$bが定義されたはずだが・・・・ echo $b; // 変数の参照(グローバルスコープの変数を探してしまう) ?> 上記はともに出力結果は (なにも表示されない) である。 <?php $a = 3; $b = $a; // $bには$aの値を代入 $a = 5; // $aの値を変更して・・・ echo $b; // $aを代入されている$bを出力 ?> 出力結果 3 <?php $a = 3; $b = $a; // $bは通常の代入 $c = &$a; // $cは参照渡しで代入 $a = 5; // 元の変数$aを変更すると・・・ echo '通常の代入($b):' . $b . "<br />\n"; echo '参照渡しで代入($c):' . $c . "<br />\n"; $b = 10; // 通常代入された変数$bを変更すると・・・ echo '$c変更後の元の変数($a):' . $a . "<br />\n"; $c = 7; // 参照渡しされた変数$cを変更すると・・・ echo '$c変更後の元の変数($a):' . $a; ?> 出力結果 通常の代入($b):3 参照渡しで代入($c):5 $c変更後の元の変数($a):5 $c変更後の元の変数($a):7 <?php $c = "グローバル変数"; function test_scope3(){ global $c; //スコープ違いの変数を参照したいのでglobal宣言 echo $c; }; test_scope3(); ?> 出力結果 グローバル変数 <?php $d = 1; $e = 2; function test_scope4(){ $GLOBALS["e"] = $GLOBALS["d"] + $GLOBALS["e"]; } test_scope4(); echo $e; ?> 出力結果 3
文字列から文字を抜き出す 波括弧「{}」はもう1つ、便利な使い方があります。「文字列」の中から「文字」を抜き出す事ができるのです。 <?php $string = "abc123"; echo $string{0}."<br>\n"; //0番目つまり先頭の文字だけ抜き出して表示 echo $string{4}; //5番目の文字を表示 ?> 出力結果 a 2 <?php $string = "日本語"; echo $string{0}.$string{1}; //最初の2バイト分表示 ?> 出力結果 日 これは日本語が2バイト文字のため2バイト分で「日」一文字になるため。
配列 <?php $arr["5"] = 5; $arr["05"] = "05"; echo '$arr[5]で出力:'.$arr[5]."<br />\n"; echo '$arr["05"]で出力:'.$arr["05"]."<br />\n"; echo '$arr[05]で出力:'.$arr[05]; ?> 出力結果 $arr[5]で出力:5 $arr["05"]で出力:05 $arr[05]で出力:5 <?php //文字列型(string)から配列への変換 $a = "文字列"; $b = (array)$a; //キャスティングにより配列型に変換 //式の情報を出力 echo "<pre>"; print_r( $b ); echo "</pre>"; ?> 出力結果 Array <?php $c = NULL; settype( $c, "array" ); //settype関数による変換 //式の情報を出力 echo "<pre>"; print_r( $c ); echo "</pre>"; ?> 出力結果 Array
|