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类
Nov 27 PHP
PHP 图片文件上传实现代码
Dec 29 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
Dec 25 PHP
PHP使用header()输出图片缓存实例
Dec 09 PHP
PHP7 新特性详细介绍
Sep 06 PHP
php使用Jpgraph创建折线图效果示例
Feb 15 PHP
PHP解耦的三重境界(浅谈服务容器)
Mar 13 PHP
php 查找数组元素提高效率的方法详解
May 05 PHP
PHP培训要多少钱
Jun 06 PHP
PHP-FPM的配置与优化讲解
Mar 15 PHP
php+layui数据表格实现数据分页渲染代码
Oct 26 PHP
如何在centos8自定义目录安装php7.3
Nov 28 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提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
laravel 5.3中自定义加密服务的方案详解
2017/05/09 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
JavaScript表达式:URL 协议介绍
2013/03/10 Javascript
20行代码实现的一个CSS覆盖率测试脚本
2013/07/07 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
2014/03/07 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
基于Bootstrap的网页设计实例
2017/03/01 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
详解redis在nodejs中的应用
2018/05/02 NodeJs
垃圾回收器的相关知识点总结
2018/05/13 Javascript
animate.css在vue项目中的使用教程
2018/08/05 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
node.js通过url读取文件
2020/10/16 Javascript
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
[01:15]PWL S2开团时刻第二期——他们杀 我就白给
2020/11/25 DOTA
[01:08:24]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第一场 2月5日
2021/03/11 DOTA
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
windows 下python+numpy安装实用教程
2017/12/23 Python
Python学生成绩管理系统简洁版
2020/04/05 Python
python实现Windows电脑定时关机
2018/06/20 Python
PyQt5 实现字体大小自适应分辨率的方法
2019/06/18 Python
python实现集中式的病毒扫描功能详解
2019/07/09 Python
Python环境Pillow( PIL )图像处理工具使用解析
2019/09/12 Python
html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
2013/01/06 HTML / CSS
Supersmart英国:欧洲市场首批食品补充剂供应商之一
2018/05/05 全球购物
《三顾茅庐》教学反思
2014/04/10 职场文书
大学生个人学年总结
2015/02/15 职场文书
2019年大学推荐信
2019/06/24 职场文书
pytorch实现ResNet结构的实例代码
2021/05/17 Python
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技