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基础陷阱题(变量赋值)
Sep 12 PHP
深入PHP运行环境配置的详解
Jun 04 PHP
解析Linux下Varnish缓存的配置优化
Jun 20 PHP
PHP统计二维数组元素个数的方法
Nov 12 PHP
PHP中source #N问题的解决方法
Jan 27 PHP
destoon二次开发常用数据库操作
Jun 21 PHP
适用于初学者的简易PHP文件上传类
Oct 29 PHP
eclipse php wamp配置教程
Jun 30 PHP
PHP 极验验证码实例讲解
Sep 29 PHP
php生成图片缩略图功能示例
Feb 22 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
PHP asXML()函数讲解
Feb 03 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和ACCESS写聊天室(十)
2006/10/09 PHP
PHP中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
PHP获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
PHP 前加at符合@的作用解析
2015/07/31 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
javascript在网页中实现读取剪贴板粘贴截图功能
2014/06/07 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
2014/11/23 Javascript
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
JavaScript实现N皇后问题算法谜题解答
2014/12/29 Javascript
浅析JS运动
2015/12/28 Javascript
js 获取当前web应用的上下文路径实现方法
2016/08/19 Javascript
jQuery ready()和onload的加载耗时分析
2016/09/08 Javascript
详解vue-Resource(与后端数据交互)
2017/01/16 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
JavaScript通如何过RGraph实现动态仪表盘
2020/10/15 Javascript
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
[01:03:42]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
python过滤字符串中不属于指定集合中字符的类实例
2015/06/30 Python
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
Python选择网卡发包及接收数据包
2019/04/04 Python
python已协程方式处理任务实现过程
2019/12/27 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
Richards网上商店:当代时尚,遍布巴西
2019/11/03 全球购物
商务日语专业毕业生求职信
2013/10/26 职场文书
怎样写好自我鉴定
2013/12/04 职场文书
活动邀请函范文
2014/01/19 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
2016年国培研修日志
2015/11/13 职场文书
2016年感恩节寄语
2015/12/07 职场文书
react中props 的使用及进行限制的方法
2021/04/28 Javascript