<?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でした。環境によってはちゃんと指摘してくれるのかも。。