トップ «前の日記(2011-08-25(Thu)) 最新 次の日記(2011-09-02(Fri))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2011-08-27(Sat) 一日抜けた。ことが気になったりする、ちょっと暑い日

可変変数

変数の値が、変数の名前になる、らしい。
ぐぐると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

get_meta_tags();

<?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や内容が変った場合はあしからず。

index.htmlは ここから。