php面向对象中static静态属性和静态方法的调用


Posted in PHP onFebruary 08, 2015

本文实例讲述了php中static静态属性和静态方法的调用。分享给大家供大家参考。具体如下:

这里分析了php面向对象中static静态属性和静态方法的调用。关于它们的调用(能不能调用,怎么样调用),需要弄明白了他们在内存中存放位置,这样就非常容易理解了。静态属性、方法(包括静态与非静态)在内存中,只有一个位置(而非静态属性,有多少实例化对象,就有多少个属性)。

实例:

<?php
header("content-type:text/html;charset=utf-8");
class Human{
 static public $name = "小妹";
 public $height = 180;
 static public function tell(){
 echo self::$name;//静态方法调用静态属性,使用self关键词
 //echo $this->height;//错。静态方法不能调用非静态属性
//因为 $this代表实例化对象,而这里是类,不知道 $this 代表哪个对象
 }
 public function say(){
 echo self::$name . "我说话了";
 //普通方法调用静态属性,同样使用self关键词
 echo $this->height;
 }
}
$p1 = new Human();
$p1->say(); 
$p1->tell();//对象可以访问静态方法
echo $p1::$name;//对象访问静态属性。不能这么访问$p1->name
//因为静态属性的内存位置不在对象里
Human::say();//错。say()方法有$this时出错;没有$this时能出结果
//但php5.4以上会提示
?>

结论:

(1)、静态属性不需要实例化即可调用。因为静态属性存放的位置是在类里,调用方法为"类名::属性名";
(2)、静态方法不需要实例化即可调用。同上
(3)、静态方法不能调用非静态属性。因为非静态属性需要实例化后,存放在对象里;
(4)、静态方法可以调用非静态方法,使用 self 关键词。php里,一个方法被self:: 后,它就自动转变为静态方法;

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
php adodb分页实现代码
Mar 19 PHP
PHP安全技术之 实现php基本安全
Sep 04 PHP
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
Jan 06 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
Oct 16 PHP
用 Composer构建自己的 PHP 框架之构建路由
Oct 30 PHP
PHP防止注入攻击实例分析
Nov 03 PHP
PHP使用glob函数遍历目录或文件夹的方法
Dec 16 PHP
详解PHP的Yii框架中日志的相关配置及使用
Dec 08 PHP
关于PHP内置的字符串处理函数详解
Feb 04 PHP
PHP实现正则匹配所有括号中的内容
Jun 22 PHP
PHP函数积累总结
Mar 19 PHP
php + ajax 实现的写入数据库操作简单示例
May 16 PHP
php延迟静态绑定实例分析
Feb 08 #PHP
PHP调用Linux命令权限不足问题解决方法
Feb 07 #PHP
PHP处理大量表单字段的便捷方法
Feb 07 #PHP
PHP生成压缩文件实例
Feb 07 #PHP
PHP实现股票趋势图和柱形图
Feb 07 #PHP
PHP中的闭包(匿名函数)浅析
Feb 07 #PHP
PHP实现自动识别Restful API的返回内容类型
Feb 07 #PHP
You might like
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
Yii2 RESTful中api的使用及开发实例详解
2016/07/06 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
js 动态选中下拉框
2009/11/26 Javascript
页面只能打开一次Cooike如何实现
2012/12/04 Javascript
jquery.validate.js插件使用经验记录
2014/07/02 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
JavaScript DOM进阶方法
2015/04/13 Javascript
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
JS获取文件大小方法小结
2015/12/08 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
jQuery Validation Plugin验证插件手动验证
2016/01/26 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
2016/08/10 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
js 提取某()特殊字符串长度的实例
2017/12/06 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
jQuery动态移除与增加onclick属性的方法详解
2018/06/07 jQuery
深入浅析js原型链和vue构造函数
2018/10/25 Javascript
vue添加class样式实例讲解
2019/02/12 Javascript
js 数据类型判断的方法
2020/12/03 Javascript
[59:08]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第一局
2016/02/27 DOTA
python实现树形打印目录结构
2018/03/29 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
2019/02/13 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
Django form表单与请求的生命周期步骤详解
2020/06/07 Python
用python给csv里的数据排序的具体代码
2020/07/17 Python
python 中的命名空间,你真的了解吗?
2020/08/19 Python
Python通过类的组合模拟街道红绿灯
2020/09/16 Python
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
Napapijri西班牙在线商店:夹克、外套、运动衫等
2020/11/05 全球购物
保送生自荐信范文
2013/10/06 职场文书
材料物理专业求职信
2014/09/01 职场文书