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 相关文章推荐
攻克CakePHP系列二 表单数据显示
Oct 22 PHP
PHP字符串 ==比较运算符的副作用
Oct 21 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
May 15 PHP
php根据身份证号码计算年龄的实例代码
Jan 18 PHP
PHP 字符串长度判断效率更高的方法
Mar 02 PHP
android上传图片到PHP的过程详解
Aug 03 PHP
PHP简单的MVC框架实现方法
Dec 01 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
Nov 16 PHP
PHP串行化与反串行化实例分析
Dec 27 PHP
利用php获得flv视频长度的实例代码
Oct 26 PHP
PHP实现正则表达式分组捕获操作示例
Feb 03 PHP
PHP下载大文件失败并限制下载速度的实例代码
May 10 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
全国FM电台频率大全 - 20 广西省
2020/03/11 无线电
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
游戏人文件夹程序 ver 4.03
2006/07/14 Javascript
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
基于jquery的让textarea自适应高度的插件
2010/08/03 Javascript
利用jquery操作Radio方法小结
2014/10/20 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
javascript插件开发的一些感想和心得
2016/02/28 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
详解jquery插件jquery.viewport.js学习使用方法
2017/09/08 jQuery
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
JS Thunk 函数的含义和用法实例总结
2020/04/08 Javascript
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
[02:26]DOTA2英雄米拉娜基础教程
2013/11/25 DOTA
python 2.7.13 安装配置方法图文教程
2018/09/18 Python
详解python 3.6 安装json 模块(simplejson)
2019/04/02 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
Python for i in range ()用法详解
2020/09/18 Python
Skyscanner英国:苏格兰的全球三大领先航班搜索服务之一
2017/11/09 全球购物
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
实习教师自我鉴定
2013/12/09 职场文书
商务英语求职自荐信范文
2013/12/24 职场文书
物流专业大学的自我评价
2014/01/11 职场文书
大学生学习自我评价
2014/01/13 职场文书
公司前台辞职报告
2014/01/19 职场文书
绿色小区申报材料
2014/08/22 职场文书
个人党性分析材料
2014/12/19 职场文书
劳模事迹材料范文
2014/12/24 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
导游词之徐州-云龙山
2019/09/29 职场文书
QT与javascript交互数据的实现
2021/05/26 Javascript
深入讲解Vue中父子组件通信与事件触发
2022/03/22 Vue.js
Python如何让字典保持有序排列
2022/04/29 Python