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以前ではエラーが出る(未確認)
  • 定数を渡すとエラー