静态延迟绑定,参数的类型约束,对象的遍历精要.docx

静态延迟绑定,参数的类型约束,对象的遍历精要.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
静态延迟绑定,参数的类型约束,对象的遍历精要

静态延迟绑定,static 问题: 1:$this 永远代表所在类的对象?????不是 2:self 永远代码所在类吗?????是 如: class?P?{ public?static?$where?=?in?P?static?preperty?lt;br?/gt;; public?static?function?sayWhere()?{ echo?self::$where; } } class?C?extends?P?{ public?static?$where?=??in?C?static?preperty?lt;br?/gt;; } echo?P::sayWhere(); echo?C::sayWhere(); 输出结果为: in?P?static?preperty? in?P?static?preperty 显然,当前的逻辑不是十分完善 此时,应该是表示当前类的关键字,最好应该在调用时决定最好(self 办不到) 此时,采用一个新的关键字,代表当前类,与 selft 不同,在于是 运行时调用房室,而不在类编译时就确定好了的! 关键字是:static 示例: class?P?{ public?static?$where?=?in?P?static?preperty?lt;br?/gt;; public?static?function?sayWhere()?{ echo?self::$where; } public?static?function?sayW()?{ echo?static::$where; } } class?C?extends?P?{ public?static?$where?=??in?C?static?preperty?lt;br?/gt;; } echo?P::sayWhere(); echo?C::sayWhere(); echo?lt;hr?/gt;; echo?P::sayW(); echo?C::sayW(); 输出结果为: in?P?static?preperty? in?P?static?preperty? in?P?static?preperty? in?C?static?preperty 总结: static关键字的功能: 1:静态局部变量 2:声明静态成员 3:当前类,运行时的当前类 类中,可以表示类的关键字: self,所在类 static,调用类 parent,父类 参数的类型约束 约束函数,或者方法类参数的类型,只能是某个类的对象 PHP是弱类型:变量可以存储任意类型的数据! 函数,方法的参数也是可以接收任意类型 但是参数,可以被规定为,某个类的固定对象 示例: class?Student?{ public?$stu_name; } $s?=?new?Student; $s-gt;stu_name?=?Bruce?Lee; function?sayName(Student?$o)?{ echo?Hello?,?,$o-gt;stu_name; } sayName(ginvip); 输出结果为: Catchable?fatal?error:?Argument?1?passed?to?sayName()?must?be?an?instance?of?Student,?string?given,?called?in?E:\VIP\91.php?on?line?14?and?defined?in?E:\VIP\91.php?on?line?10 在参数前增加类名即可!注意:只支持类名与数组 对象的遍历 对象是一个集合数据类型 简单的遍历,foreach() foreach() 也可以遍历对象 遍历对象,是依次获得对象拥有的属性的信息 class?Student?{ public?$stu_name; public?$stu_age; public?$stu_gender; } $o?=?new?Student; $o-gt;stu_name?=?Bruce?Lee; $o-gt;stu_age?=?50; $o-gt;stu_gender?=?male; foreach($o?as?$p_name?=gt;?$p_value)?{ var_dump($p_name,$p_value); echo?lt;br?/gt;; } 留意,访问修饰可以影响 如: class?Student?{ public?$stu_name; public?$stu_age; private?$stu_gender?=?secret; } $o?=?new?Student; $o-gt;stu_name?=?Bruce?Lee; $o-gt

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档