PHPの変数操作


「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




可変変数ってのは今まで見たことなかったので、ちょっと驚きました。