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 相关文章推荐
MySQL GBK→UTF-8编码转换
May 24 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
Mar 11 PHP
一个PHP针对数字的加密解密类
Mar 20 PHP
destoon安装出现Internal Server Error的解决方法
Jun 21 PHP
smarty实现多级分类的方法
Dec 05 PHP
PHP利用APC模块实现大文件上传进度条的方法
Oct 29 PHP
php实现购物车功能(下)
Jan 05 PHP
PHP使用token防止表单重复提交的方法
Apr 07 PHP
全面了解PHP中的全局变量
Jun 17 PHP
PHP支付系统设计与典型案例分享
Aug 02 PHP
使用Codeigniter重写insert的方法(推荐)
Mar 23 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
May 21 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
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
分享下php5类中三种数据类型的区别
2015/01/26 PHP
javascript复制对象使用说明
2011/06/28 Javascript
纯Javascript实现Windows 8 Metro风格实现
2013/10/15 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
2013/11/28 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
百度地图给map添加右键菜单(判断是否为marker)
2016/03/04 Javascript
JS集成fckeditor及判断内容是否为空的方法
2016/05/27 Javascript
jQuery 选择同时包含两个class的元素的实现方法
2016/06/01 Javascript
jquery.qtip提示信息插件用法简单实例
2016/06/17 Javascript
原生javascript实现的ajax异步封装功能示例
2016/11/03 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
详解vue嵌套路由-query传递参数
2017/05/23 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
jQuery编写QQ简易聊天框
2020/08/27 jQuery
node koa2 ssr项目搭建的方法步骤
2020/12/11 Javascript
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
对python函数签名的方法详解
2019/01/22 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
2019/08/18 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
python中remove函数的踩坑记录
2021/01/04 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
2021/02/26 Python
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
总经理司机岗位职责
2014/02/06 职场文书
开学典礼决心书
2014/03/11 职场文书
找工作求职信
2014/07/07 职场文书
2014乡镇领导班子四风对照检查材料思想汇报
2014/10/05 职场文书
2014年小学教导处工作总结
2014/12/19 职场文书
闭幕词的写作格式与范文!
2019/06/24 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书
Mysql 如何实现多张无关联表查询数据并分页
2021/06/05 MySQL
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL