本日演示一下昨天的内容,魔术方法是如何进行触发的,先来截图感想熏染下。

代码demo

完全代码的实行结果

触发phpPHP进修第十六课魔术办法触发的实例 HTML

<?php

/

Created by PhpStorm.

User: PHP学习坊

Date: 17/2/28

Time: 下午9:54

/

class Magic

{

/

Magic constructor. 布局函数,自动实行

/

public function __construct()

{

echo \公众我是布局函数,在类实例化的时候,我会自动实行\n\"大众;

}

/

@param $name 要访问的变量

访问一个不存在的成员变量自动触发

/

public function __get($name)

{

echo \公众我访问了一个不存在的成员变量{$name}\n\公众;

}

/

@param $name 变量名

@param $value 变量值

为一个不存在的成员变量赋值,自动触发

/

public function __set($name, $value)

{

echo \公众为不存在的成员变量 {$name} 赋值 {$value} \n\公众;

}

/

@param $name 方法名

@param $arguments 参数

调用一个不存在的方法是触发

/

public function __call($name, $arguments)

{

echo \"大众我调用了不存在的方法{$name},参数是\"大众.implode( ',' , $arguments ).\"大众\n\公众;

require_once 'A.php';

}

/

工具被克隆时触发

/

public function __clone()

{

echo \"大众工具被克隆时触发\n\"大众;

}

/

@return string

考试测验echo一个工具时触发

/

public function __toString()

{

return \"大众我是__toString,考试测验echo一个工具时触发\n\"大众;

}

/

工具销毁时触发

/

public function __destruct()

{

echo \"大众我是析构函数,工具销毁时触发\n\"大众;

}

public static function __callStatic( $name, $arguments )

{

echo \"大众我调用了不存在的静态方法{$name},参数是\"大众.implode( ',' , $arguments ).\"大众\n\公众;

}

}

$magic = new Magic(); //触发__construct

$magic->test; //触发__get

$magic->test = 'test'; //触发__set

$magic->test( 'a' , 'b' , 'c' ); //触发__call

$a = new A(); //触发__autoload

/

@param $class 类名

试图实例化一个不存在的类时候触发

/

function __autoload( $class )

{

echo \"大众试图实例化类{$class},但是类不存在,我可以考试测验从其他地方加载类A\n\"大众;

}

$a = clone $magic; //触发__clone

echo $magic; //触发__toString

Magic::test(); //触发__callStatic

?>

以上便是昨日内容的一些代码示例,这里只是演示,既然特定情形下,能触发指定的魔术方法,我们自然可以做一些我们须要的操作,这便是他们被称为魔术方法的缘故原由。

以上是本日的内容。