PHPでの参照渡し引数の省略について
<?php function Hoge(&$arg = null){ if( func_num_args() == 0 ){ echo '引数省略。<br>'; }else{ $arg = 'ほげほげ'; } } // 1. 引数を省略 Hoge(); // 2. 定数を渡す //Hoge(null); // エラー // 3. 未定義な変数を指定 Hoge($fuga); var_dump($fuga); echo '<br>'; // 4. 定義済みの(nullの代入された)変数を指定 $fuga = null; Hoge($fuga); var_dump($fuga); echo '<br>'; ?>
PHP 5.2.9-2でテスト。
- PHP5以前ではエラーが出る(未確認)
- 定数を渡すとエラー