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

2015-01-24信息快讯网

本篇文章是对php中的静态关键字以及类常量进行了详细的分析介绍,需要的朋友参考下

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

<?php
class Foo
{   public static $my_static='foo';
    public function staticValue(){   return self::$my_static;   }
}
class Bar extends Foo
{   public function fooStatic(){   return parent::$my_static;   }
}
print Foo::$my_static."/n";
$foo = new Foo();
print $foo->staticValue()."/n";
print $foo->my_static."/n";// Undefined "Property" my_static 
// $foo::my_static is not possible
print Bar::$my_static."/n";
$bar = new Bar();
print $bar->fooStatic()."/n";
?> 

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

可以在每个基类中定义常量使它保持不变。在你不使用$符号去声明或使用它时,常量不同于普通变量。就象静态成员,常量值不能通过对象的实例来访问(而应使用$object::constant). 常量值必须是一个常量表达式,而不是一个变量,一个类的成员,一个数学表达式或函数调用的结果。
<?php
class MyClass
{   const constant = 'constant value';
    function showConstant() {   echo  self::constant."/n";   }
}
echo MyClass::constant."/n";
$class = new MyClass();
$class->showConstant();// echo $class::constant; is not allowed
?>

PHP变量内存分配问题记录整理
php遍历文件夹所有文件子文件夹函数代码
PHP根据IP地址获取所在城市具体实现
php编写的简单页面跳转功能实现代码
关于JSON以及JSON在PHP中的应用技巧
使用PHP静态变量当缓存的方法
PHP输出当前进程所有变量/常量/模块/函数/类的示例
php cookie使用方法学习笔记分享
PHP CURL获取cookies模拟登录的方法
php中的boolean(布尔)类型详解
php5.5中类级别的常量使用介绍
PHP取整函数:ceil,floor,round,intval的区别详细解析
php取整函数ceil,floo,round的用法及介绍
浅析php中常量,变量的作用域和生存周期
PHP 伪静态技术原理以及突破原理实现介绍
IIS安装Apache伪静态插件的具体操作图文
解析php dirname()与__FILE__常量的应用
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
解析PHP生成静态html文件的三种方法
解析htaccess伪静态的规则
利用php获取服务器时间的实现代码
PHP5常用函数列表(分享)
深入理解php的MySQL连接类
PHP之生成GIF动画的实现方法
基于PHP对XML的操作详解
关于初学PHP时的知识积累总结
简单的cookie计数器实现源码
探讨多键值cookie(php中cookie存取数组)的详解
$_GET['goods_id']+0 的使用详解
PHP在线生成二维码(google api)的实现代码详解
PHP Cookie的使用教程详解
php笔记之:数据类型与常量的使用分析
基于PHP生成静态页的实现方法
基于PHP静态类的原罪详解
PHP静态调用非静态方法的应用分析
基于php伪静态的实现详细介绍
smarty 缓存控制前的页面静态化原理
PHP中如何定义和使用常量
CI框架源码阅读,系统常量文件constants.php的配置
php中的注释、变量、数组、常量、函数应用介绍
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
©2014-2024 dbsqp.com