PHP创建对象的六种方式实例总结


Posted in PHP onJune 27, 2019

本文实例讲述了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创建对象的六种方式实例总结

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
快速配置PHPMyAdmin方法
Jun 05 PHP
php获取字段名示例分享
Mar 03 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
Jun 26 PHP
php5.3以后的版本连接sqlserver2000的方法
Jul 28 PHP
PHP中字符安全过滤函数使用小结
Feb 25 PHP
php项目中百度 UEditor 简单安装调试和调用
Jul 15 PHP
Twig模板引擎用法入门教程
Jan 20 PHP
PHP检测链接是否存在的代码实例分享
May 06 PHP
php实现基于openssl的加密解密方法
Sep 30 PHP
PHP中trait使用方法详细介绍
May 21 PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 PHP
php遍历目录下文件并按修改时间排序操作示例
Jul 12 PHP
PHP实现的抓取小说网站内容功能示例
Jun 27 #PHP
不常用但很实用的PHP预定义变量分析
Jun 25 #PHP
PHP中define() 与 const定义常量的区别详解
Jun 25 #PHP
php字符串截取函数mb_substr用法实例分析
Jun 25 #PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
Jun 25 #PHP
Laravel向公共模板赋值方法总结
Jun 25 #PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
Jun 25 #PHP
You might like
一个取得文件扩展名的函数
2006/10/09 PHP
E路文章系统PHP
2006/12/11 PHP
PHP可逆加密/解密函数分享
2012/09/25 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
PHP数据的提交与过滤基本操作实例详解
2016/11/11 PHP
Laravel自定义 封装便捷返回Json数据格式的引用方法
2019/09/29 PHP
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
2010/06/07 Javascript
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
2014/05/23 Javascript
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
2015/08/10 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
js实现简单选项卡功能
2020/03/23 Javascript
vue实现前台列表数据过滤搜索、分页效果
2019/05/28 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
Javascript模块化机制实现原理详解
2020/04/02 Javascript
javascript实现贪吃蛇游戏(娱乐版)
2020/08/17 Javascript
PyQt5每天必学之事件与信号
2018/04/20 Python
python opencv旋转图像(保持图像不被裁减)
2018/07/26 Python
Django代码性能优化与Pycharm Profile使用详解
2018/08/26 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
2019/06/27 Python
django admin组件使用方法详解
2019/07/19 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
python 多线程中join()的作用
2020/10/29 Python
行政助理求职自荐信
2013/10/26 职场文书
项目经理的岗位职责
2013/11/23 职场文书
给幼儿园老师的表扬信
2014/01/19 职场文书
测量工程专业求职信
2014/02/24 职场文书
公益广告标语
2014/06/19 职场文书
乡党委干部党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
《分数的意义》教学反思
2016/02/20 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书
JS实现刷新网页后之前浏览位置保持不变示例详解
2022/08/14 Javascript