PHP魔术方法的使用示例
《:PHP魔术方法的使用示例》要点: PHP实战① __get/__set:将工具的属性进行接管 PHP实战当拜访一个不存在的对象属性时: PHP实战index.php
代码如下:
<?php define('BASEDIR',__DIR__); //界说根目录常量 include BASEDIR.'/Common/Loader.php'; spl_autoload_register('CommonLoader::autoload'); PHP实战$obj = new CommonObject();? PHP实战//在php中拜访一个不存在的对象属性时 PHP实战会抛出一个差错:Notice: Undefined property: CommonObject::$title in D:practisephpdesignpsr0index.php on line 9 PHP实战当在Common/Object.php 中添加 __set 和 __get 办法后 PHP实战Object.php
代码如下:
<必修php namespace Common; PHP实战class Object{ PHP实战再执行 index.php,不会再报错. PHP实战再次改动 Common/Object.php
代码如下:
<必修php namespace Common; PHP实战class Object{ index.php
代码如下:
<?php define('BASEDIR',__DIR__); //界说根目录常量 include BASEDIR.'/Common/Loader.php'; spl_autoload_register('CommonLoader::autoload'); PHP实战$obj = new CommonObject();? PHP实战$obj->title = 'hello'; PHP实战执行 index.php,页面输入:
代码如下:
string 'CommonObject::__set' (length=20) string 'CommonObject::__get' (length=20) hello PHP实战② __call/__callStatic:控制 PHP 对象办法的调用(__callStatic 用来控制类的静态办法) PHP实战当执行一个不存在的php办法时 PHP实战index.php:
代码如下:
<?php define('BASEDIR',__DIR__); //界说根目录常量 include BASEDIR.'/Common/Loader.php'; spl_autoload_register('CommonLoader::autoload'); PHP实战$obj = new CommonObject();? PHP实战//当执行一个不存在的php办法时 PHP实战执行 index.php 会报一个致命差错:Fatal error: Call to undefined method CommonObject::test() in D:practisephpdesignpsr0index.php on line 9 PHP实战如果在 Common/Object 中定义一个__call 办法,则会在办法不存在时自动回调:
代码如下:
<?php namespace Common; PHP实战class Object{??? PHP实战index.php
代码如下:
<?php define('BASEDIR',__DIR__); //界说根目录常量 include BASEDIR.'/Common/Loader.php'; spl_autoload_register('CommonLoader::autoload'); PHP实战$obj = new CommonObject();? PHP实战//当执行一个不存在的php办法时 PHP实战页面输入:
代码如下:
string 'test' (length=4) array ? 0 => string 'hello' (length=5) ? 1 => int 123 magic function PHP实战当调用一个不存在的静态办法时 PHP实战Co妹妹on/Object.php
代码如下:
<必修php namespace Common; PHP实战class Object{ PHP实战注意:__callStatic 办法也要声明成静态办法 PHP实战index.php
代码如下:
<?php define('BASEDIR',__DIR__); //定义根目录常量 include BASEDIR.'/Common/Loader.php'; spl_autoload_register('CommonLoader::autoload'); PHP实战//执行一个不存在的静态办法 PHP实战执行 index.php,页面输入:
代码如下:
string 'test' (length=4) array ? 0 => string 'hello' (length=5) ? 1 => int 1234 magic function PHP实战③ __toString:将一个 PHP 工具转换成一个字符串 PHP实战index.php
代码如下:
<?php define('BASEDIR',__DIR__); //界说根目录常量 include BASEDIR.'/Common/Loader.php'; spl_autoload_register('CommonLoader::autoload'); PHP实战$obj = new CommonObject(); PHP实战echo $obj; PHP实战此时会报错: Catchable fatal error: Object of class Co妹妹onObject could not be converted to string in D:practisephpdesignpsr0index.php on line 8 PHP实战在 Object.php 中添加 __toString 办法
代码如下:
<必修php namespace Common; PHP实战class Object{ PHP实战④ __invoke:将一个 PHP 对象当成一个函数来执行时,会回调此魔术办法 PHP实战index.php
代码如下:
<?php define('BASEDIR',__DIR__); //界说根目录常量 include BASEDIR.'/Common/Loader.php'; spl_autoload_register('CommonLoader::autoload'); PHP实战$obj = new CommonObject(); PHP实战echo $obj("test"); Object.php
代码如下:
<必修php namespace Common; PHP实战class Object{ PHP实战页面输入:
代码以下:
string 'test' (length=4) invoke 编程之家培训学院每天发布《:PHP魔术方法的使用示例》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |