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 文件上传功能实现代码
Jun 24 PHP
PHP MySQL应用中使用XOR运算加密算法分享
Aug 28 PHP
领悟php接口中interface存在的意义
Jun 27 PHP
php随机取mysql记录方法小结
Dec 27 PHP
微信自定义菜单的处理开发示例
Apr 16 PHP
yii2.0实现pathinfo的形式访问的配置方法
Apr 06 PHP
thinkPHP5 tablib标签库自定义方法详解
May 10 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
Sep 16 PHP
PHP完全二叉树定义与实现方法示例
Oct 09 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
PHP常量define和const的区别详解
May 18 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 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 define的第二个参数使用方法
2013/11/04 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
php及codeigniter使用session-cookie的方法(详解)
2017/04/06 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
基于jquery的模态div层弹出效果
2010/08/21 Javascript
简单实用的全选反选按钮例子
2013/10/18 Javascript
window.location的重写及判断location是否被重写
2014/09/04 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
jquery按回车键实现表单提交的简单实例
2016/05/25 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
2017/02/08 Javascript
js实现3D图片环展示效果
2017/03/09 Javascript
Extjs表单输入框异步校验的插件实现方法
2017/03/20 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
Node.js中sequelize时区的配置方法
2017/12/10 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
解决vue.js this.$router.push无效的问题
2018/09/03 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
python的socket编程入门
2018/01/29 Python
python中字典按键或键值排序的实现代码
2019/08/27 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
2017/07/31 HTML / CSS
求网格中的黑点分布
2013/11/06 面试题
幼教求职信
2014/03/12 职场文书
销售经理竞聘书
2014/03/31 职场文书
人力资源管理专业毕业生自荐书
2014/05/25 职场文书
建筑安全标语
2014/06/07 职场文书
2015年林业工作总结
2015/05/14 职场文书
离职证明范本
2015/06/12 职场文书
MySQL表类型 存储引擎 的选择
2021/11/11 MySQL
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers