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 date函数参数详解
Nov 27 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
Oct 23 PHP
php打开远程文件的方法和风险及解决方法
Nov 12 PHP
Parse正式发布开源PHP SDK
Aug 11 PHP
php随机抽奖实例分析
Mar 04 PHP
PHP实现CSV文件的导入和导出类
Mar 24 PHP
php计算到指定日期还有多少天的方法
Apr 14 PHP
用php代码限制国内IP访问我们网站
Sep 26 PHP
PHP设计模式之工厂模式与单例模式
Sep 28 PHP
Yii框架实现邮箱激活的方法【数字签名】
Oct 18 PHP
关于ThinkPHP中的异常处理详解
May 11 PHP
PHP压缩图片功能的介绍
Mar 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仿博客园 个人博客(2) 数据库增添改删
2013/07/05 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
2016/01/07 PHP
完美解决thinkphp唯一索引重复时出错的问题
2017/03/31 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
jquery中实现标签切换效果的代码
2011/03/01 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
在JavaScript中操作数组之map()方法的使用
2015/06/09 Javascript
一不小心就做错的JS闭包面试题
2015/11/25 Javascript
react-native 封装选择弹出框示例(试用ios&amp;android)
2017/07/11 Javascript
nodejs微信扫码支付功能实现
2018/02/17 NodeJs
vue页面离开后执行函数的实例
2018/03/13 Javascript
使用vuex的state状态对象的5种方式
2018/04/19 Javascript
Vue组件全局注册实现警告框的实例详解
2018/06/11 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
vue下canvas裁剪图片实例讲解
2020/04/16 Javascript
Python中join函数简单代码示例
2018/01/09 Python
python 二维数组90度旋转的方法
2019/01/28 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
python实现将range()函数生成的数字存储在一个列表中
2020/04/02 Python
Python使用jupyter notebook查看ipynb文件过程解析
2020/06/02 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
Opencv+Python识别PCB板图片的步骤
2021/01/07 Python
解决pytorch 保存模型遇到的问题
2021/03/03 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
CSS3实现伪类hover离开时平滑过渡效果示例
2017/08/10 HTML / CSS
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
应届大学毕业生找工作的求职信范文
2013/11/29 职场文书
《鸟的天堂》教学反思
2014/02/27 职场文书
生物科学专业自荐书
2014/06/20 职场文书
2014教师党员自我评议(5篇)
2014/09/20 职场文书
工作表扬信范文
2015/01/17 职场文书
抗洪救灾感谢信
2015/01/22 职场文书
初中教务主任竞聘演讲稿(范文)
2019/08/20 职场文书
golang 接口嵌套实现复用的操作
2021/04/29 Golang
Python利用zhdate模块实现农历日期处理
2022/03/31 Python