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 随机生成10位字符代码
Mar 26 PHP
PHP 多维数组排序(usort,uasort)
Jun 30 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
Aug 18 PHP
php中一个完整表单处理实现代码
Nov 10 PHP
php中jQuery插件autocomplate的简单使用笔记
Jun 14 PHP
PHP 线程安全与非线程安全版本的区别深入解析
Aug 06 PHP
php判断ip黑名单程序代码实例
Feb 24 PHP
使用array_map简单搞定PHP删除文件、删除目录
Oct 29 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
Nov 15 PHP
thinkphp连贯操作实例分析
Nov 22 PHP
详解php的socket通信
Aug 11 PHP
PHP对象链式操作实现原理分析
Oct 09 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中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
浅析PHP文件下载原理
2014/12/25 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
JS 显示当前日期与时间的代码
2010/03/24 Javascript
javascript数组的使用
2013/03/28 Javascript
jQuery实现的一个自定义Placeholder属性插件
2014/08/11 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
nodejs实现截取上传视频中一帧作为预览图片
2017/12/10 NodeJs
浅谈Angular6的服务和依赖注入
2018/06/27 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
详解Vue.js自定义tipOnce指令用法实例
2018/12/19 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
JavaScript生成随机验证码代码实例
2019/09/28 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
vue实现简单计算商品价格
2020/09/14 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
python数据结构树和二叉树简介
2014/04/29 Python
Python实现按特定格式对文件进行读写的方法示例
2017/11/30 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
Python创建一个空的dataframe,并循环赋值的方法
2018/11/08 Python
在python3中实现更新界面
2020/02/21 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
Python如何把字典写入到CSV文件的方法示例
2020/08/23 Python
Python爬取网页信息的示例
2020/09/24 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
实习求职信
2013/12/01 职场文书
档案管理员岗位职责
2015/02/12 职场文书
党校学习个人总结
2015/02/15 职场文书
继续教育个人总结
2015/03/03 职场文书
给原生html中添加水印遮罩层的实现示例
2021/04/02 Javascript
pytorch model.cuda()花费时间很长的解决
2021/06/01 Python
正则表达式拆分url实例代码
2022/02/24 Java/Android