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 相关文章推荐
ajax缓存问题解决途径
Dec 06 PHP
用PHP控制用户的浏览器--ob*函数的使用说明
Mar 16 PHP
PHP面向对象概念
Nov 06 PHP
浅析php变量作用域的一些问题
Aug 08 PHP
CodeIgniter上传图片成功的全部过程分享
Aug 12 PHP
yii实现级联下拉菜单的方法
Jul 31 PHP
Codeigniter(CI)框架分页函数及相关知识
Nov 03 PHP
php获取访问者浏览页面的浏览器类型
Jan 23 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
PHP session垃圾回收机制实例分析
Jun 28 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
May 15 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遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
ThinkPHP之N方法实例详解
2014/06/20 PHP
PHP中抽象类和抽象方法概念与用法分析
2016/05/24 PHP
DOM下的节点属性和操作小结
2009/05/14 Javascript
javascript的数据类型、字面量、变量介绍
2012/05/23 Javascript
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
setInterval,setTimeout与jquery混用的问题
2013/04/08 Javascript
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
jquery实现倒计时代码分享
2014/06/13 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
2014/06/15 Javascript
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
2016/01/18 Javascript
三个js循环的关键字示例(for与while)
2016/02/16 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
2017/07/21 Javascript
vue webpack打包后图片路径错误的完美解决方法
2018/12/07 Javascript
利用React Router4实现的服务端直出渲染(SSR)
2019/01/07 Javascript
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
es6数据变更同步到视图层的方法
2019/03/04 Javascript
vue实现路由懒加载及组件懒加载的方式
2019/06/11 Javascript
详解js中的原型,原型对象,原型链
2020/07/16 Javascript
python统计日志ip访问数的方法
2015/07/06 Python
Python聚类算法之基本K均值实例详解
2015/11/20 Python
Python 专题四 文件基础知识
2017/03/20 Python
caffe binaryproto 与 npy相互转换的实例讲解
2018/07/09 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
2019/04/12 Python
pytorch中使用cuda扩展的实现示例
2020/02/12 Python
css3中的calc函数浅析
2018/07/10 HTML / CSS
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
存储过程和sql语句的优缺点
2014/07/02 面试题
党员自我剖析材料(群众路线)
2014/10/06 职场文书
酒店前台辞职书
2015/02/26 职场文书
opencv检测动态物体的实现
2021/07/21 Python
JavaScript数组 几个常用方法总结
2021/11/11 Javascript
MySQL控制流函数(-if ,elseif,else,case...when)
2022/07/07 MySQL