僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
変数の値が、変数の名前になる、らしい。
ぐぐるとCやJavaなどにも実装されている模様。
<?php $first="foo"; $$first="bar" ; $$$first="baz" ; $$$$first="qux" ; print "\$first の値は $first です。\n"; print "\$foo の値は $foo です。\n"; print "\$bar の値は $bar です。\n"; print "\$baz の値は $baz です。\n"; print "\$qux の値は $qux です。\n"; ?>
$first の値は foo です。
$foo の値は bar です。
$bar の値は baz です。
$baz の値は qux です。
PHP Notice: Undefined variable: qux in $PHP_SCRIPT on line 12
$qux の値は です
まだ $qux は存在していない。
文ではなく式だけど、if else 文よりも手っ取り早いかもしれない。
$ php -r '$foo = 1; $foo > 3 ? print "large\n" : print "small\n"; ' small $ php -r '$foo = 7; $foo > 3 ? print "large\n" : print "small\n"; ' large
else 相当が不要なら、NULL とでも書けばよさそうだけど、 elseif を入れようとすると面倒かも。
<?php $val = 3; function func1($val){ $val ++; return $val; } function func2(&$val){ $val ++; return $val; } print "\$valの最初の値は ". $val . "\n"; print "関数func1(3)が返した\$val は ". func1($val) . "\n"; print "func1(3)の後、\$valの値は ". $val . "\n"; print "関数func2(3)が返した\$val は ". func2($val) . "\n"; print "func2(3)の後、\$valの値は ". $val . "\n"; ?>
$valの最初の値は 3
関数func1(3)が返した$val は 4
func1(3)の後、$valの値は 3
関数func2(3)が返した$val は 4
func2(3)の後、$valの値は 4
<?php function hello($who){ print "Hello, $who\n"; } function goodby($who){ print "Good-by, $who\n"; } $chable_func = 'hello'; $chable_func("anyone"); $chable_func = 'goodby'; $chable_func("everybody); ?>
Hello, anyone Good-by, everybody
<?php if($argv[1]) { $meta_name_tag = get_meta_tags($argv[1]); foreach($meta_name_tag as $key => $val) { print "Meta Name $key 's Contents is : $val\n"; } } ?>
$ php meta_tags.php http://www.kuzuore.com Meta Name editor 's Contents is : /usr/bin/vi Meta Name keywords 's Contents is : 屑俺日記, Plamo Linux, Linux From Scratch, \ LFS, BSD, オープンソース, 屑部録
文字コードが合ってなければ当然化ける。
$argv[1]が何か、なんて考えてない。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。