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 条评论) |