php面向对象详解5

4 篇文章 0 订阅
3 篇文章 0 订阅

在这一节中我们会讲到php面向对象final,self,ststic,const的使用

final关键字是用来锁住某个类或方法不被继承,我们看一下这段代码

<?php
class demo{
public $name="minerchow";
function code(){
return "写代码";
}
}

class demo2 extends demo{
function code(){
return demo::code()."++";
}
}

$p=new demo2();
echo $p->code();

?>
这段代码能够正常输出,但如果我们尝试在demo类中code()方法前加上final,系统报错啦
Fatal error: Cannot override final method demo::code() in D:\wamp\www\test\newfile.php on line 13
提示清楚显示不能重载final类,同理class前加上final也会出现相同情况
static用来定义静态属性和方法,
可以在类未被实例化时使用,静态属性单独占
用内存而不会因创建多个对象时而导致同样的方法或者属性重复占用。通常情况下和self同事使用
那让我们再看一下这段代码
<?php
class demo{
public $name= 'minerchow';
function code(){
return $this->name."写代码";
}
}

class demo2 extends demo{
function code(){
return demo::code()."++";
}
}

$p=new demo2();
echo $p->code();

?>
这段代码正常输出了minerchow写代码++,没有问题,现在我们把public换成static
这是我们发现$name的值minerchow并没有被显示,因为this不能获取静态属性,这是我们可以使用self
换成self::$name(注意name前有$),就能正常访问了
那么如何从外部访问静态属性呢
这时,我们可以用类名::方法名(或成员属性)
<?php
final class demo{
static $name= 'minerchow';
function code(){
return self::$name."写代码";
}
}

echo demo::code();

?>
最后简单说一下const用法,const表示常量,不同于变量,它无法在被修改

转载请注明来自multifeeling
本文标题:php面向对象详解5
本文地址:<a href="http://www.multifeeling.com/archives/%E2%80%9D%3Ca%20href=" http:="" www.multifeeling.com="" archives="" 152%e2%80%9d"="" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(134, 0, 0); text-decoration: none; ">http://www.multifeeling.com/archives/152%E2%80%9D" 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值