美文网首页
PHP 魔术方法

PHP 魔术方法

作者: CaptainRoy | 来源:发表于2018-06-19 17:29 被阅读7次
PHP中魔术方法

__construct
__destruct
__set
__get
__isset
__unset

  • 下面是一个 Person 类
class Person
{
    private $name;
    private $sex;
    private $age;

    // 构造方法
    function __construct($name = '', $sex = '男', $age = 1)
    {
        echo __METHOD__ . PHP_EOL;
        $this->name = $name;
        $this->sex = $sex;
        $this->age = $age;
    }

    // 析构方法
    function __destruct()
    {
        echo __METHOD__ . PHP_EOL;
    }
    
    function say()
    {
        echo '我的名字: ' . $this->name . ' ,性别: ' . $this->sex . ' ,年龄: ' . $this->age . PHP_EOL;
    }

    function run()
    {
        echo $this->name . ' 在跑步' . PHP_EOL;
    }
}
  • 初始化时调用 __construct
$roy = new Person('roy', '男', 18); // Person::__construct
$roy->run(); // roy 在跑步
$roy->say(); // 我的名字: roy ,性别: 男 ,年龄: 18
  • 调用 __destruct
$roy = null; // Person::__destruct
  • __set
/**
     * @param string $propertyName 成员变量
     * @param mixed $propertyValue 成员变量对应的值
     */
    function __set($propertyName, $propertyValue)
    {
        echo __METHOD__ . ' ,参数: property- ' . $propertyName . '  ,value- ' . $propertyValue . PHP_EOL;
    }
$roy->name = 'lily'; // 自动调用 __set()
  • __get
/**
  * @param string $propertyName 成员变量
     */
    function __get($propertyName)
    {
        echo __METHOD__ . '参数: Property - ' . $propertyName . PHP_EOL;
    }
echo $roy->age; // 自动调用 __get()
  • __isset 和 __unset
function __isset($propertyName)
    {
        echo __METHOD__ . '参数 : ' . $propertyName . PHP_EOL;
    }

    function __unset($propertyName)
    {
        echo __METHOD__ . '参数 : ' . $propertyName . PHP_EOL;
    }
var_dump(isset($roy->name)); // 自动调用 __isset
unset($roy->age); // 自动调用 __unset
  • __call 当调用对象不存在的方法时会自动调用此方法
/**
     * @param string $functionName 方法名
     * @param array $arguments 传入的参数
     */
    function __call($functionName, $arguments)
    {
        // TODO: Implement __call() method.
    }

相关文章

  • PHP面试梳理

    PHP php 魔术方法 、魔术常量 php cli autoload , spl_autoload compos...

  • PHP魔术方法

    PHP魔术方法

  • PHP魔术方法

    魔术方法(Magic methods) PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了...

  • 规则引擎升级版(直接能跑)

    利用了php的魔术方法

  • PHP常用魔术方法

    参考链接:PHP之十六个魔术方法详解

  • PHP简明教程-面向对象基础 1

    PHP简明教程 面向对象基础 1 类中魔术方法 类中魔术方法不能被手动调用,几乎每个魔术方法都有触发时机和参数,P...

  • PHP 魔术方法

    PHP中魔术方法 __construct__destruct__set__get__isset__unset 下面...

  • PHP魔术方法

    总的来说, 有下面几个魔术函数__construct() __destruct() __get() __set(...

  • PHP魔术方法

    概念 PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了举足轻重的作用。 常见的方法 __...

  • PHP魔术方法

    PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的...

网友评论

      本文标题:PHP 魔术方法

      本文链接:https://www.haomeiwen.com/subject/hmfzeftx.html