PHP创建对象有多少方法,具体代码是什么
Admin 2022-11-16 群英技术资讯 699 次浏览
本篇内容介绍了“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>';
运行结果:

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
如何理解PHP访问控制,有哪些知识点?下文有详解方法和实例,内容详细,逻辑清晰,有需要的朋友可以参考,希望大家阅读完这篇文章后能有所收获,那么下面就一起来了解一下吧。
WebService接口在PHP中的使用:1、主要是基于web的服务,首先确保开启了扩展 extension,建立与php的联系;2、接着创建一个客户端;3、最后调用对应的WebService接口。
这篇文章主要介绍了确保Laravel网站不会被嵌入到其他站点中的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
php CodeIgniter框架的作用:1、是一个基于MVC框架的PHP开源轻量级框架,适合快速开发,为 PHP 程序员建立功能完善的 Web 应用程序;2、优点,框架配置简单,执行效率高,有基本的路由功能,能够进行一定程度的路由。
GatewayWorker基于Workerman开发的一个项目框架;GatewayWorker通过Register服务来建立划分集群,同一集群使用相同的Register服务ip和端口。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008