• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 3年前 (2022-01-26) 21次浏览 已收录 0个评论

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

<?php<BR>class Foo<BR>{   public static $my_static='foo';<BR>    public function staticValue(){   return self::$my_static;   }<BR>}<BR>class Bar extends Foo<BR>{   public function fooStatic(){   return parent::$my_static;   }<BR>}<BR>print Foo::$my_static."/n";<BR>$foo = new Foo();<BR>print $foo->sta<mark>@本文来源gaodaimacom搞#代%码@网-</mark><strong>搞代gaodaima码</strong>ticValue()."/n";<BR>print $foo->my_static."/n";// Undefined "Property" my_static <BR>// $foo::my_static is not possible<BR>print Bar::$my_static."/n";<BR>$bar = new Bar();<BR>print $bar->fooStatic()."/n";<BR>?> <BR>


//静态方法实例(Static method example) <BR><?php<BR>class Foo<BR>{   public static function aStaticMethod() {    }<BR>}<BR>Foo::aStaticMethod();<BR>?> <BR>


可以在每个基类中定义常量使它保持不变。在你不使用$符号去声明或使用它时,常量不同于普通变量。就象静态成员,常量值不能通过对象的实例来访问(而应使用$object::constant). 常量值必须是一个常量表达式,而不是一个变量,一个类的成员,一个数学表达式或函数调用的结果。

<?php<BR>class MyClass<BR>{   const constant = 'constant value';<BR>    function showConstant() {   echo  self::constant."/n";   }<BR>}<BR>echo MyClass::constant."/n";<BR>$class = new MyClass();<BR>$class->showConstant();// echo $class::constant; is not allowed<BR>?><BR>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:探讨PHP中OO之静态关键字以及类常量的详解_php技巧
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址