PHPでの関数のデフォルト値


「3.4.3パラメータのデフォルト値」からのメモ。


リテラルをデフォルト値とすることは可能ですが、仮引数をデフォルト値として指定することはできません。

<?php
function myfunc($a , $b = $a*2)
{
  echo "$b\n";
}
myfunc(10);
?>
PHP Parse error:  syntax error, unexpected T_VARIABLE in /home/h13i32maru/php/3.4.3_default_val2.php on line 3


Rubyでは以下のように仮引数をデフォルト値として指定することができます。

#!/usr/bin/ruby
def myfunc(a , b = a*2)
  puts b
end

myfunc(10);
20