PHP魔术方法以及关于独立实例与相连实例的全面讲解

5年以前  |  阅读数:343 次  |  编程语言:PHP 

    <?php
    //魔术方法
    //当包含多个类
    //1.自动装载类的魔术方法__autoload()
    function __autoload($classname){
    if (isset($classname)){
    require_once $classname.'.class.php';
    }
    }


    /* $computer1=new Computer();
    $computer1->addList('dalisng',234);
    echo $computer1; */
    //__call()屏蔽调用方法时候产生的错误,当我们调用一个不存在的方法时候,会自动调用__call()方法。
    //独立实例,两个实例各自建立,互不干涉
    $computer2=new Computer();
    echo $computer2->name;echo "<br/>";
    $computer3=new Computer();
    echo $computer3->name;echo "<br/>";
    $computer3->name="大亮";
    echo '$computer3->name:'.$computer3->name;echo "<br/>";
    echo '$computer2->name:'.$computer2->name;echo "<br/>";

    echo "<hr/>";
    //相连实例,即 用等于号来开辟一个新的实例,此时两个实例共同指向一个内存地址,一损俱损,一荣俱荣
    $computer4=new Computer();
    echo '$computer4->name:'.$computer4->name;echo "<br/>";
    $computer5=$computer4;
    echo '$computer5->name:'.$computer5->name;echo "<br/>";
    $computer4->name="大亮";
    echo '$computer4->name:'.$computer4->name;echo "<br/>";
    echo '$computer5->name:'.$computer5->name;echo "<br/>";

    echo "<hr/>";
    //克隆__clone,克隆的新实例和被克隆的实例是两个相互独立的个体,虽然属性值相同,但是属性存放的地址不同,所以克隆后你我生死无关
    $computer6=new Computer();
    echo '$computer6->name:'.$computer6->name;echo "<br/>";
    $computer7=clone $computer6;
    echo '$computer7->name:'.$computer7->name;echo "<br/>";
    $computer6->name="克隆";
    echo '$computer6->name:'.$computer6->name;echo "<br/>";
    echo '$computer7->name:'.$computer7->name;echo "<br/>";

Computer.class.php


    <?php
    class Computer{
    public $name="1234";
    function __construct(){
    echo "you are right!";
    }

    function __call($methodName,$argsList){//当方法不存在的时候会自动调用此方法,$argsList是相应的参数
    echo $methodName."()方法不存在!";
    echo "<pre>";
    print_r($argsList);
    echo "</pre>";
    }

    private function __toString(){ //当用户输出不存在的字符串时候,该方法自动调用 比如echo 对象名
    echo "我是对象的字符串!";
    }
    }

以上就是小编为大家带来的PHP魔术方法以及关于独立实例与相连实例的全面讲解全部内容了,希望大家多多支持脚本之家~

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例