php Static关键字实用方法


Posted in PHP onJune 04, 2010

为了兼容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 相关文章推荐
PHP 和 MySQL 开发的 8 个技巧
Jan 02 PHP
解决MySQL中文输出变成问号的问题
Jun 05 PHP
PHP网站备份程序代码分享
Jun 10 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
Jul 02 PHP
浅谈php冒泡排序
Dec 30 PHP
使用Thinkphp框架开发移动端接口
Aug 05 PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
Feb 27 PHP
Symfony2中被遗弃的getRequest()方法分析
Mar 17 PHP
yii2实现根据时间搜索的方法
May 25 PHP
Yii视图操作之自定义分页实现方法
Jul 14 PHP
PHP实现限制IP访问及提交次数的方法详解
Jul 17 PHP
php连接MSsql server的五种方法总结
Mar 04 PHP
PHP var_dump遍历对象属性的函数与应用代码
Jun 04 #PHP
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
Jun 04 #PHP
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
Jun 03 #PHP
php ftp文件上传函数(基础版)
Jun 03 #PHP
php下连接ftp实现文件的上传、下载、删除文件实例代码
Jun 03 #PHP
PHP stristr() 函数(不区分大小写的字符串查找)
Jun 03 #PHP
php strstr查找字符串中是否包含某些字符的查找函数
Jun 03 #PHP
You might like
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
启用OPCache提高PHP程序性能的方法
2019/03/21 PHP
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
js中escape对应的C#解码函数 UrlDecode
2012/12/16 Javascript
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
javascript实现2048游戏示例
2014/05/04 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
js预加载图片方法汇总
2015/06/15 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
2018/03/05 Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
2018/07/31 jQuery
使用vue2实现带地区编号和名称的省市县三级联动效果
2018/11/05 Javascript
jQuery实现checkbox全选、反选及删除等操作的方法详解
2019/08/02 jQuery
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
js实现3D旋转相册
2020/08/02 Javascript
[49:17]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第三场 1月26日
2021/03/11 DOTA
Python多线程学习资料
2012/12/19 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
python实现飞机大战
2018/09/11 Python
Python读取mat文件,并保存为pickle格式的方法
2018/10/23 Python
基于Pytorch SSD模型分析
2020/02/18 Python
python删除某个目录文件夹的方法
2020/05/26 Python
旧时光糖果:Old Time Candy
2018/02/05 全球购物
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
当文件系统受到破坏时,如何检查和修复系统?
2012/03/09 面试题
医德医风演讲稿
2014/05/20 职场文书
学校个人对照检查材料
2014/08/26 职场文书
暑期培训班策划方案
2014/08/26 职场文书
十佳少先队员演讲稿
2014/09/12 职场文书
任命书怎么写
2015/03/02 职场文书
全家福照片寄语怎么写?
2019/04/02 职场文书
创业不要错过,这4种餐饮新模式
2019/07/18 职场文书
Python绘制分类图的方法
2021/04/20 Python
何时使用Map来代替普通的JS对象
2021/04/29 Javascript
我收到了德劲DE1107
2022/04/05 无线电
MySQL 自动填充 create_time 和 update_time
2022/05/20 MySQL