php面向对象如何开发(PHP创建对象的六种方式实例总结)
类别:编程学习 浏览量:2054
时间:2022-01-27 01:59:01 php面向对象如何开发
PHP创建对象的六种方式实例总结本文实例讲述了PHP创建对象的六种方式。分享给大家供大家参考,具体如下:
|
<?php /** * PHP创建对象的六种方式 */ class Person{ private $name = 'bruce' ; public function getName(){ return $this ->name; } public static function getObjBySelf(){ return new self(); } //动态延迟绑定,能识别调用者 public static function getObjcByStatic(){ return new static (); } } //Person子类 Teacher class Teacher extends Person{ public static function getObjByParent(){ return new parent(); } } //1、new 类名();创建对象 $obj1 = new Person(); //等价于写法 $obj1 = new Person; echo '类名:' .get_class( $obj1 ). '<br>' ; echo $obj1 ->getName(). '<hr>' ; //2、将类名字符串赋值给一个变量,通过变量创建 $clsName = 'Person' ; $obj2 = new $clsName (); echo '类名:' .get_class( $obj2 ). '<br>' ; echo $obj2 ->getName(). '<hr>' ; //3、通过对象实例创建对象 $obj3 = new $obj2 (); echo '类名:' .get_class( $obj3 ). '<br>' ; echo $obj3 ->getName(). '<hr>' ; //4、通过 new self() //$obj4 = (new $obj3())->getObjBySelf(); $obj4 = Person::getObjBySelf(); echo '类名:' .get_class( $obj4 ). '<br>' ; echo $obj4 ->getName(). '<hr>' ; //5、通过 new parent() $obj5 = Teacher::getObjByParent(); echo '类名:' .get_class( $obj5 ). '<br>' ; echo $obj5 ->getName(). '<hr>' ; //6、通过 new static(); $obj6 = Person::getObjcByStatic(); echo '类名:' .get_class( $obj6 ). '<br>' ; //类名:Person echo $obj6 ->getName(). '<hr>' ; //bruce //当用子类去调用时候,发现static自动识别当前调用者(静态延迟绑定),返回当前调用者对象 $obj7 = Teacher::getObjcByStatic(); echo '类名:' .get_class( $obj7 ). '<br>' ; //类名:Teacher echo $obj7 ->getName(). '<hr>' ; //bruce $obj8 = Person::getObjBySelf(); echo '类名:' .get_class( $obj8 ). '<br>' ; //类名:Person echo $obj8 ->getName(). '<hr>' ; //new self()在子类中调用依旧返回原来父类的绑定 $obj9 = Teacher::getObjBySelf(); echo '类名:' .get_class( $obj9 ). '<br>' ; //类名:Person echo $obj9 ->getName(). '<hr>' ; |
运行结果:
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/Alen_xiaoxin/article/details/84336801
您可能感兴趣
- phpstudy服务器怎么设置(phpstudy本地环境开启.htaccess伪静态方法)
- php框架初始化教程学习(PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解)
- dedecms最新手册(在自己的php页面中使用dedecms标签的代码示例)
- phpstudy如何部署在linux上(phpstudy linux面板CC防护功能使用教程)
- php7语法代码规范(PHP7新功能总结)
- python与php比较(浅谈php调用python文件)
- 织梦cms中的模块怎么设置(织梦CMS模板在runphp=yes的标签中调用其他field值的方法)
- php上传图片视频代码(详解PHP素材图片上传、下载功能)
- redis在php中的使用(PHP+Redis开发的书签案例实战详解)
- php开发各种问题(解决php extension 加载顺序问题)
- php教程微信支付技术(php微信扫码支付 php公众号支付)
- php创建文件(php创建多级目录与级联删除文件的方法示例)
- php支付接口(PHP实现的支付宝支付功能示例)
- phpstudy使用教程最新版(phpstudy安装使用图文教程)
- lnmp安装php(LNMP系列教程之二 删除站点及域名绑定)
- phpstudy怎么修改mysql版本(PhpStudy集成环境升级MySQL数据库版本的方法)
- 美国数十万加仑牛奶倒下水道怎么回事 原因曝光令人心痛(美国数十万加仑牛奶倒下水道怎么回事)
- 探索中国神秘文字(探索中国神秘文字)
- 重温《蜗居》 宋思明选中海藻为红颜知己,纯属巧合,与爱无关(宋思明选中海藻为红颜知己)
- 越南旅游攻略(越南旅游攻略自由行)
- 成都旅游攻略(成都旅游攻略自由行最佳线路)
- 给儿童吃什么最好(给儿童吃什么最好消化)
热门推荐
- dedecms可以长期使用吗(dedecms5.7 文章不能发布问题探讨及解决方法)
- thinkphp支付宝支付(thinkPHP和onethink微信支付插件分享)
- vue一个组件两种样式(Vue实现动态样式的多种方法汇总)
- nginx给需要转发的链接添加参数(Nginx 根据URL带的参数转发的实现)
- 如何处理textarea换行
- mysql索引如何使用(MySQL 索引和数据表该如何维护)
- tomcat与eclipse配置运行(Tomcat配置及如何在Eclipse中启动)
- css3右侧栏伸缩效果(使用CSS3实现环形进度条效果)
- apache各种配置(让Apache支持Rewrite静态页面重写的方法)
- react native web白屏(关于React Native 无法链接模拟器的问题)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9