本文目录一览:
如何在PHP中使用call
__call()函数是php类的默认魔法函数,__call() 在一个对象的上下文中,如果调用的方法不存在的时候,它将被触发:
?php
class MethodTest {
public function __call($name, $arguments) {
// Note: value of $name is case sensitive.
echo "Calling object method '$name' "
. implode(', ', $arguments). "\n";
}
}
$obj = new MethodTest;
$obj-runTest('in object context');
运行结果:
Calling object method 'runTest' in object context
php中怎么使用call
1.php中使用call:
?php
// An example callback function
function my_callback_function() {
echo 'hello world!';
}
// An example callback method
class MyClass {
static function myCallbackMethod() {
echo 'Hello World!';
}
}
// Type 1: Simple callback
call_user_func('my_callback_function');
// Type 2: Static class method call
call_user_func(array('MyClass', 'myCallbackMethod'));
// Type 3: Object method call
$obj = new MyClass();
call_user_func(array($obj, 'myCallbackMethod'));
// Type 4: Static class method call (As of PHP 5.2.3)
call_user_func('MyClass::myCallbackMethod');
// Type 5: Relative static class method call (As of PHP 5.3.0)
class A {
public static function who() {
echo "A\n";
}
}
class B extends A {
public static function who() {
echo "B\n";
}
}
call_user_func(array('B', 'parent::who')); // A
?
php调用函数时func.call和func.apply的区别
1、方法定义
call,
apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例,也就是每个方法都有call,-php函数名调用call
apply属性.既然作为方法的属性,那它们的使用就当然是针对方法的了.这两个方法是容易混淆的,因为它们的作用一样,只是使用方式不同.
call方法:
语法:call([thisObj[,arg1[,
arg2[,
[,.argN]]]]])
定义:调用一个对象的一个方法,以另一个对象替换当前对象。
说明:
call
方法可以用来代替另一个对象调用一个方法。call
方法可将一个函数的对象上下文从初始的上下文改变为由
thisObj
指定的新对象。
如果没有提供
thisObj
参数,那么
Global
对象被用作
thisObj。
apply方法:
语法:apply([thisObj[,argArray]])
定义:应用某一对象的一个方法,用另一个对象替换当前对象。
说明:
如果
argArray
不是一个有效的数组或者不是
arguments
对象,那么将导致一个
TypeError。
如果没有提供
argArray
和
thisObj
任何一个参数,那么
Global
对象将被用作
thisObj,
并且无法被传递任何参数
call,
apply作用就是借用别人的方法来调用,就像调用自己的一样.
php中怎么用call
__call 是一个魔术方法,当调用一个不可访问的对象方法(非静态方法),会自动的执行该魔术方法。public funciton __call($name,$arr)
比如,在类外部,调用类中一个不存在的方法,就会自动执行这个__call方法( $name,$arr),参数$name代表的是你调用的方法名,$arr代表的是你调用这个方法里面的所有参数。
class a {
pu blic function __call($name,$arr){
echo $name;
var_dump($arr);
}
}
$a = new a();
$a-testa(1,2,3);
此时,$name就是testa $arr就是array(1,2,3)组成的数组。
黑马程序员的PHP是国内最早开设的真正人工智能课程。课程全面系统,紧跟时代潮流。