找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 230|回复: 0
打印 上一主题 下一主题

探讨PHP中OO之静态关键字以及类常量的详解

[复制链接]

2588

主题

2588

帖子

7694

积分

论坛元老

Rank: 8Rank: 8

积分
7694
跳转到指定楼层
楼主
发表于 2018-2-14 08:21:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            闲着没事随便找了点PHP的关于OO的点资料看看,访问控制修饰符,self,parent,const,static几个关键字,箭头操作符(书上也这么叫..即“->”),范围解析操作符(即双冒号“::”),不过觉得这个跟C#语言里的OO很多是一样的,很容易理解不过还是看看理清PHP里的OO思路还是应该的吧。
--------------------------------------------------------------------------------
声明静态的类的成员和方法,使它不需要一个类的实例.一个static成员的声明不能通过一个类对象的实例来访问(尽管一个静态方法可以)。
静态声明必须在可见性声明之后。为了兼容PHP 4,如果没有可见性被声明,那么成员和方法将被当作是已经声明为public。
由于静态方法可以调用非对象实例,伪变量$this不可以在声明为静态的方法中使用。
事实上static方法调用形式在编译时被确定。当使用必须要声明的类名时,方法是完全标识和无继承规则的应用。当使用必须要声明的类名时,这种方法就被完全确认,而且没有使用继承的规则。
如果self已经被声明,那么self就被当前所属的类所解释。也不适用与继承规则。静态属性不能通过箭头操作符->.访问非静态方法,这将产生一个E_STRICT 级的警告。
[U]复制代码[/U] 代码如下:
staticValue()."/n";
print $foo->my_static."/n";// Undefined "roperty" my_static
// $foo::my_static is not possible
print Bar:my_static."/n";
$bar = new Bar();
print $bar->fooStatic()."/n";
?>
[U]复制代码[/U] 代码如下:
//静态方法实例(Static method example)

可以在每个基类中定义常量使它保持不变。在你不使用$符号去声明或使用它时,常量不同于普通变量。就象静态成员,常量值不能通过对象的实例来访问(而应使用$object::constant). 常量值必须是一个常量表达式,而不是一个变量,一个类的成员,一个数学表达式或函数调用的结果。
[U]复制代码[/U] 代码如下:
showConstant();// echo $class::constant; is not allowed
?>
            
            
您可能感兴趣的文章:
  • PHP面向对象的进阶学习(抽像类、接口、final、类常量)
  • php类常量的使用详解
  • PHP面向对象程序设计之类常量用法实例
  • php类常量用法实例分析
  • php 类中的常量、静态属性、非静态属性的区别
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端