php Static关键字实用方法

2015-01-24信息快讯网

声明类成员或方法为static,就可以不实例化类而直接访问。不能通过一个对象来访问其中的静态成员(静态方法除外)。

为了兼容PHP4,如果没有指定“可见性”,属性和方法默认为public。
由于静态方法不需要通过对象即可调用,所以伪变量$this在静态方法中不可用。
静态属性也可以由对象通过->操作符来访问。
用::方式调用一个非静态方法会导致一个E_STRICT级别的错误。
就像其它所有的PHP静态变量一样,静态属性只能被初始化为一个字符值或一个常量,不能使用表达式。 所以你可以把静态属性初始化为整型或数组,但不能指向另一个变量或函数返回值,也不能指向一个对象。
PHP5.3.0之后,我们可以用一个变量来动态调用类。但该变量的值不能为关键字self, parent 或static。
 
<?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 
print $foo::$my_static . "\n"; 
$classname = 'Foo'; 
print $classname::$my_static . "\n"; // PHP 5.3.0之后可以动态调用 
print Bar::$my_static . "\n"; 
$bar = new Bar(); 
print $bar->fooStatic() . "\n"; 
?> 

PHP里边用Static关键字来定义静态属性和方法.

实例一:静态属性的引用方法
 
<?php 
/* 
*author:ajax123 
*qq:283400245 
*/ 
class person{ 
static$name="ajax123";//static声明静态属性 
static$age=25;//static声明静态属性 
static$address="北京";//static声明静态属性 
function song(){ 
echo "My name is : ".self::$name."<br>";//类内部:通过通过self 类访问静态属性 
echo "I am ".self::$age."<br>";//类内部:通过通过self 类访问静态属性 
echo "I live in ".self::$address."<br>";//类内部:通过self 类访问静态属性 
} 
} 
echoperson::$name."<br>";//类外部:通过类名person访问静态属性 
echoperson::$age."<br>";//类外部:通过类名person访问静态属性 
echoperson::$address."<br>";//类外部:通过类名person访问静态属性 
?> 


实例二:静态方法的引用方法

 
<?php 
/* 
*author:ajax123 
*qq:283400245 
*/ 
class person{ 
static$name="ajax123";//static声明静态属性 
static$age=25;//static声明静态属性 
static$address="北京";//static声明静态属性 
staticfunction song(){ //声明静态方法song 
echo "My name is : ".self::$name."<br>";//类内部:通过通过self 类访问静态属性 
echo "I am ".self::$age."<br>";//类内部:通过通过self 类访问静态属性 
echo "I live in ".self::$address."<br>";//类内部:通过self 类访问静态属性 
} 
} 
person::song()."<br>";//类外部:通过类名person访问静态方法 
?> 
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
PHP中其实也可以用方法链
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
php数组函数序列之array_splice() - 在数组任意位置插入元素
php 按指定元素值去除数组元素的实现方法
php数组函数序列之array_values() 获取数组元素值的函数与方法
让Json更懂中文(JSON_UNESCAPED_UNICODE)
PHP实现异步调用方法研究与分享
提示Trying to clone an uncloneable object of class Imagic的解决
php中经典方法实现判断多维数组是否为空
PHP将DateTime对象转化为友好时间显示的实现代码
Sorting Array Values in PHP(数组排序)
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
php.ini中date.timezone设置分析
PHP中static关键字原理的学习研究分析
PHP类中Static方法效率测试代码
php中static静态变量的使用方法详解
用sql命令修改数据表中的一个字段为非空(not null)的语句
PHP var_dump遍历对象属性的函数与应用代码
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
phpmyadmin 3.4 空密码登录的实现方法
Discuz!下Memcache缓存实现方法
php set_time_limit(0) 设置程序执行时间的函数
Windows7下PHP开发环境安装配置图文方法
Joomla下利用configuration.php存储简单数据
php UTF-8、Unicode和BOM问题
PHP 工厂模式使用方法
PHP下打开URL地址的几种方法小结
php getimagesize 上传图片的长度和宽度检测代码
Godaddy空间Zend Optimizer升级方法
PHP iconv 解决utf-8和gb2312编码转换问题
php microtime获取浮点的时间戳
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
php self,$this,const,static,-&gt;的使用
php面向对象全攻略 (十) final static const关键字的使用
©2014-2024 dbsqp.com