php对魔术方法的认识-PHP问题

资源魔 29 0

php对魔术办法的意识:一、【_set】属性没有存正在时主动设置属性;二、【__get】属性没有存正在或不克不及读取时,设置该办法可读取;三、【__call】办法没有存正在时,执行;四、【__callStatic】动态办法没有存正在时,执行。

php对魔术办法的意识:

一、_set:属性没有存正在时主动设置属性

/**
* 属性没有存正在时经过__set主动设置属性
* @param $key [键名]
* @param $value [属性值]
*/
function __set($key,$value){
$this->arr[$key] = $value;
}
 
代码:
$object->title = 'blue'; //设置没有存正在的属性,挪用__set()
echo $object->title,'<br/>'; //输入没有存正在的属性,挪用__get()
 
输入:
blue

二、__get:属性没有存正在或不克不及读取时,设置该办法可读取

/**
* 属性没有存正在或不克不及读取(属性为公有private)时,经过__get读取
* @param $key 键名
* @return 属性
*/
function __get($key){
return $this->arr[$key];
}

三、__call:办法没有存正在时,执行

/**
* 办法没有存正在时,执行__call办法
* @param $func [办法名]
* @param $param [参数]
* @return [description]
*/
function __call($func,$param){
var_dump($func);
echo '<br/>';
var_dump($param);
echo '<br/>';
}
 
代码:
$object -> show('hello','world'); //挪用没有存正在的办法,挪用__call()
 
输入:
string(4) "show"
array(2) { [0]=> string(5) "hello" [1]=> string(5) "world" }

四、__callStatic:动态办法没有存正在时,执行

/**
* 动态办法没有存正在时,执行__callStatic办法
* @param $func [办法名]
* @param $param [参数]
* @return [description]
*/
static function __callStatic($func,$param){
var_dump($func);
echo '<br/>';
var_dump($param);
echo '<br/>';
}
 
代码:
IMooc\Object::show('hello','world'); //挪用没有存正在的动态办法,挪用__callStatic()
 
输入:
string(4) "show"
array(2) { [0]=> string(5) "hello"  [1]=>string(5) "world" }

五、__toString:当工具转换为字符串时,执行

/**
* 当工具转换为字符串时,执行__toString办法
* @return string [description]
*/
function __toString{
return __CLASS__;
}
 
代码:
echo $object,'<br/>'; //将工具以字符串方式输入,挪用__toString()
 
输入:
IMooc\Object

六、__invoke:当把工具当成函数来应用时,执行

/**
* 当把工具当成函数来应用时,执行__invoke办法
* @param [type] $param [参数]
* @return [type] [description]
*/
function __invoke($param){
var_dump($param);
}
 
代码:
echo $object('hello'); //将工具当函数应用,挪用__invoke()
 
输入:
string(5) "hello"

相干收费学习保举:php编程(视频)

以上就是php对魔术办法的意识的具体内容,更多请存眷资源魔其它相干文章!

标签: php php教程 魔术方法 php故障解决 php使用问题

抱歉,评论功能暂时关闭!