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 相关文章推荐
PHP4与PHP3中一个不兼容问题的解决方法
Oct 09 PHP
php 高效率写法 推荐
Feb 21 PHP
php下批量挂马和批量清马代码
Feb 27 PHP
php代码书写习惯优化小结
Jun 20 PHP
PHP使用MPDF类生成PDF的方法
Dec 08 PHP
PHP编程入门的基本语法知识点总结
Jan 26 PHP
PHP怎样用正则抓取页面中的网址
Aug 09 PHP
PHP实现支付宝即时到账功能
Dec 21 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
PHP数组式访问接口ArrayAccess用法分析
Dec 28 PHP
PHP封装的完整分页类示例
Aug 21 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小偷的核心程序
2007/04/09 PHP
php知道与问问的采集插件代码
2010/10/12 PHP
php代码检查代理ip的有效性
2016/08/19 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
2017/03/15 PHP
JavaScript 字符串连接性能优化
2008/12/20 Javascript
用js来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
2012/01/21 Javascript
js Math 对象的方法
2013/09/01 Javascript
jQuery之Deferred对象详解
2014/09/04 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
2017/04/10 jQuery
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
2017/08/09 jQuery
微信小程序支付及退款流程详解
2017/11/30 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
分析python服务器拒绝服务攻击代码
2014/01/16 Python
python使用百度翻译进行中翻英示例
2014/04/14 Python
操作Windows注册表的简单的Python程序制作教程
2015/04/07 Python
Python实现动态图解析、合成与倒放
2018/01/18 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
2018/06/11 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
2020/02/23 Python
python如何查看安装了的模块
2020/06/23 Python
matplotlib.pyplot.plot()参数使用详解
2020/07/28 Python
Django xadmin安装及使用详解
2020/10/26 Python
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
使用phonegap获取位置信息的实现方法
2017/03/31 HTML / CSS
学习退步检讨书
2014/09/28 职场文书
对照检查剖析材料
2014/09/30 职场文书
2014年护理部工作总结
2014/11/14 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
Mysql数据库索引面试题(程序员基础技能)
2021/05/31 MySQL
mysql定时自动备份数据库的方法步骤
2021/07/07 MySQL
alibaba seata服务端具体实现
2022/02/24 Java/Android