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 相关文章推荐
使用sockets:从新闻组中获取文章(三)
Oct 09 PHP
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
Oct 09 PHP
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
Nov 07 PHP
php和javascript之间变量的传递实现代码
Dec 19 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
Apr 26 PHP
smarty基础之拼接字符串的详解
Jun 18 PHP
浅谈PHP中foreach/in_array的使用
Nov 02 PHP
Smarty实现页面静态化(生成HTML)的方法
May 23 PHP
YII框架批量插入数据的方法
Mar 18 PHP
php图像验证码生成代码
Jun 08 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
Jun 19 PHP
TP5框架安全机制实例分析
Apr 05 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基于GD库的图像处理方法小结
2016/09/27 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
2009/05/25 Javascript
javascript中常用编程知识
2013/04/08 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
JSON取值前判断
2014/12/23 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
2015/01/28 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
轻松掌握JavaScript中的Math object数学对象
2016/05/26 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
关于webpack2和模块打包的新手指南(小结)
2017/08/07 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
Vue组件中slot的用法
2018/01/30 Javascript
浅析vue中常见循环遍历指令的使用 v-for
2018/04/18 Javascript
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
jQuery的Ajax接收java返回数据方法
2018/08/11 jQuery
VUE简单的定时器实时刷新的实现方法
2019/01/20 Javascript
微信小程序实现九宫格抽奖
2020/04/15 Javascript
vue仿ios列表左划删除
2019/09/26 Javascript
[51:39]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第二场 2月7日
2021/03/11 DOTA
django自定义Field实现一个字段存储以逗号分隔的字符串
2014/04/27 Python
python获取本地计算机名字的方法
2015/04/29 Python
django 数据库连接模块解析及简单长连接改造方法
2019/08/29 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
2014/05/07 HTML / CSS
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
科室工作个人总结的自我评价
2013/10/29 职场文书
乡村卫生服务一体化管理实施方案
2014/03/30 职场文书
乡镇务虚会发言材料
2014/10/20 职场文书
2015新生加入学生会自荐书
2015/03/24 职场文书
少儿励志名言(80句)
2019/08/14 职场文书
selenium.webdriver中add_argument方法常用参数表
2021/04/08 Python
奥特曼十大神器:奥特手镯在榜,第一是贝利亚的神器
2022/03/18 日漫
Android开发之WECHAT微信小程序路由跳转的两种形式
2022/04/12 Java/Android