「2.3変数」からのメモ
変数展開
文字列中に変数を書くと自動的に展開されます。
<?php $hoge = "hello"; echo "\$hoge is $hoge\n"; ?>
$hoge is hello
可変変数
変数名を文字列として指定できる
<?php $hoge = "foo"; $$hoge = "hello"; echo "\$foo is $foo\n"; echo "\$\$hoge is {$$hoge}\n"; ?>
$foo is hello $$hoge is hello
変数への参照
変数のポインタを使用する
<?php $hoge = ""; $foo = &$hoge; $foo = "hello"; echo "\$hgoe is $hoge\n"; echo "\$foo is $foo\n"; ?>
$hgoe is hello $foo is hello
PHPでポインタを扱う場合、「アドレスの代入」と「値の代入」については左辺の書式は同じになります。C言語とは少し違う扱い方なので注意が必要です。
#include <stdio.h> int main() { int hoge; int *foo; foo = &hoge; *foo = 100; printf("hoge is %d\n" , hoge); printf("*foo is %d\n" , *foo); return 0; }
hoge is 100 *foo is 100
可変変数ってのは今まで見たことなかったので、ちょっと驚きました。