function hoge(callable $f = fn ($a) => $a) {} // エラー
function hoge(callable $f = 'intval') {} // エラー
function hoge(callable $f = null) {} // 合法
即時関数くらい書かせろよなぁ。せめて文字列でcallableな関数指定できるようにしてほしいわ
省略するには、$fがnullか確認してコールバック実行時にif文だか三項演算子だかで切り分けるしかない
なんで callable型 に null 入れられんだよ。キメェなぁ。なんでデフォルト値として関数代入できねーんだよ。使えねぇなぁ
いかにも増築増築で別々の機能を後付けて盛り付けてるって感じで、機能間の生合成がいまいちなんだよなぁPHP
まあ呼び出し元では hoge(fn ($a) => $a) みたいな呼び出しできるので、マシっちゃマシだけど
参考:
https://stackoverflow.com/questions/55587939/default-callable-in-function-definition-in-php-7