php中的一些高级用法

弱国无外交,人弱亦如此
### call_user_func_array
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
function foobar($arg, $arg2) {
echo __FUNCTION__, " got $arg and $arg2\n";
}
class foo {
function bar($arg, $arg2) {
echo __METHOD__, " got $arg and $arg2\n";
}
}


// Call the foobar() function with 2 arguments
call_user_func_array("foobar", array("one", "two"));

// Call the $foo->bar() method with 2 arguments
$foo = new foo;
call_user_func_array(array($foo, "bar"), array("three", "four"));
?>

call_user_func

1
2
3
4
5
6
7
8
function increment($var)
{
$var++;
}

$a = 0;
call_user_func('increment', $a);
echo $a."\n";

其他

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

$class= new \Jason\Ccshop\Models\Product();

//返回对象的类名 命名空间
dump(get_class($class));

// 返回由类的方法名组成的数组
dump(get_class_methods($class));

// 返回由类的默认属性组成的数组
dump(get_object_vars($class));
dump(get_class_vars($class));

// 返回对象或类的父类名
dump(get_parent_class($class));

//检查类的方法是否存在
dump(method_exists($class, 'getMainThumb'));

//以参数列表的数组,调用用户方法, 在php7 中被废弃
call_user_method_array
//call_user_func_array 代替
//对特定对象调用用户方法 call_user_method 在php7 中被废弃
// call_user_func 代替