PHP创建对象有多少方法,具体代码是什么
Admin 2022-11-16 群英技术资讯 450 次浏览
创建对象实例:
<?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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
PHPfpm和swoole可以共存。在php-fpm中维持TCP长连接主要借助swoole扩展提供的SWOOLE_KEEP选项,客户端设置此选项后,在请求结束时不会关闭连接,新的请求到来后可以复用TCP连接。
这篇文章主要给大家介绍了关于php如何根据IP获取当前经纬度以及地域信息的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
HMAC-SHA1加密算法functiongetSignature($str,$key){$signature="";if(function_exists('hash_hmac')){$signature=base64_encode(hash_hmac("sha1",$str,$key,true));}else{
laravel怎样实现多语言切换?一些朋友想要实现中文和英文的切换效果,其实实现多语言切换并不困难,下面是具体的操作步骤以及实现代码,需要的朋友可以参考。
在laravel中,可以利用Request对象的isMethod方法配合if语句来进行判断是否是post传输请求,只需将参数设置为“post”即可,语法为“if($request->isMethod('post')){要执行的代码}”。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008