コールバック関数の検証1

関数を引数として渡す方法。

$str = "ネコ";
$funcA = function($str){ echo "Hello " . $str; };
test1( $str, $funcA );

function test1( $str, $callback ) {
	echo 'Test1<br>';
	$callback($str);
}

出力
Test1
Hello ネコ


コールバック関数の検証2

JavaScriptでよく見かけるコールバック関数の記述方法

$str = "ヤギ";
test2( $str, function($str){ 
		echo "Hello " . $str; } 
);

function test2( $str, $callback ) {
	echo 'Test2<br>';
	$callback($str);
}

出力
Test2
Hello ヤギ


コールバック関数の検証3

コールバック関数名を文字列で指定する方法。
$str = "カニ";
test3( $str, 'hello_print' );

function test3( $str, $callback ) {
	return call_user_func( $callback, $str );
}

function hello_print($str) {
	echo "Hello " . $str;
}

出力
Hello ヤギ


コールバック関数の検証4

クラスのメソッドを文字列で指定する方法。
$str = "サメ";
$obj4 = new Class4();
test4( $str, array( $obj4,'hello_print4'));

function test4( $str, $callback ) {
	return call_user_func( $callback, $str );
}

class Class4{
	public function hello_print4($str){
		echo "Hello " . $str;
	}
}

出力
Hello サメ