首页 > 作文

PHP的重载使用魔术方法代码实例详解

更新时间:2023-04-09 02:20:08 阅读: 评论:0

摘录php官网对php重载的解黄鹤楼诗句大全集释:

php所提供的”重载”(overloading)是指动态地”创建”类属性和方法。我们是通过魔术方法(magic methods)来实现的。
当调用当前环境下未定义或不可见的类属性或方法时,重载方法会被调用。本节后面将使用”不可访问属性(inaccessible properties)”和”不可访问方法(inaccessible methods)”来称呼这些未定义或不可见的类属性或方法。
所有的重载方法都必须被声明为 public。

note:
这些魔术方法的参数都不能通过引用传递。

note:
php中的”重载”与其它绝大多数面向对象语言不同。传统的”重载”是用于提供多个同名的类方法,但各方法的参数类型和个数不同。

属性重载

在给不可访问属性赋值时,__t() 会被调用。
读取不可访问属性的值时,__get() 会被调用。
当对不可访问属性调用 ist() 或 empty() 时,__ist() 会被调用。
当对不可访问属性调用 unt() 时,__unt() 会被调用。
参数 $name 人间有真情是指要操作的变量名称。__t() 方法的 $value 参数指定了 $name 变量的值。
属性重载只能在全面开荒打一成语对象中进行。在静态方法中,这些规范中小学办学行为魔术方法将不会被调用。所以这些方法都不能被 声明为 static。

note:
因为 php 处理赋值运算的方式,__t() 的返回值将被忽略。类似的, 在下面这样的链式赋值中,__get() 不会被调用:
$a = $obj->b = 8;

note:
在除 ist() 外的其它语言结构中无法使用重载的属性,这意味着当对一个重载的属性使用 empty() 时,重载魔术方法将不会被调用。
为避开此限制,必须将重载属性赋值到本地变量再使用 empty()。

example #1 使用 __get(),__t(),__ist() 和 __unt() 进行属性重载

方法重载

在对象中调用一个不可访问方法时,__call() 会被调用。
在静态上下文中调用一个不可访问方法时,__callstatic() 会被调用。分身情人的歌词
$name 参数是要调用的方法名称。
$arguments 参数是一个枚举数组,包含着要传递给方法 $name 的参数。

example #2 使用 __call() 和 __callstatic() 对方法重载

到此这篇关于php的重载使用魔术方法代码实例详解的文章就介绍到这了,更多相关php的重载使用魔术方法内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-09 02:20:07,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/79a24f1326a74a2781967ad76848fae3.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:PHP的重载使用魔术方法代码实例详解.doc

本文 PDF 下载地址:PHP的重载使用魔术方法代码实例详解.pdf

下一篇:返回列表
标签:方法   属性   魔术   参数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图