<?php function func(callable $callback) { echo "callback..."; call_user_func($callback); } class Hoge { private function fuga() { echo "fuga!"; } } $hoge = new Hoge(); func(array($hoge, "fuga"));
↑な感じでcallable タイプヒンティングを使用してみたところ、
Catchable fatal error: Argument 1 passed to func() must be callable, array given, called in /path/to/callable.php on line 13 and defined in /path/to/callable.php on line 3
って怒られ、callable タイプヒンティングなんて初めて使ったので、
「おいおい、配列指定は使えないんじゃないかよっ」
っと、罪もないネタ元サイトを疑ってしまったm(_ _;)m
このエラーの原因は、タイプヒンティングを外したらわかった。
Warning: call_user_func() expects parameter 1 to be a valid callback, cannot access private method Hoge::fuga() in...
うむ。fugaメソッドをpublicにしたらエラーなく動きましたとさ。
環境はphp5.6.3@winでした。環境によってはちゃんと指摘してくれるのかも。。