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 相关文章推荐
用PHP4访问Oracle815
Oct 09 PHP
php 自写函数代码 获取关键字 去超链接
Feb 08 PHP
《PHP编程最快明白》第七讲:php图片验证码与缩略图
Nov 01 PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 PHP
探讨GDFONTPATH能否被winxp下的php支持
Jun 21 PHP
PHP实现采集抓取淘宝网单个商品信息
Jan 08 PHP
微信公众平台开发之配置与请求
Aug 26 PHP
php强大的时间转换函数strtotime
Feb 18 PHP
Yii2中DropDownList简单用法示例
Jul 18 PHP
php 将json格式数据转换成数组的方法
Aug 21 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
Mar 07 PHP
Laravel框架查询构造器简单示例
May 08 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实现分页的一个示例
2006/10/09 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
CodeIgniter生成静态页的方法
2016/05/17 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
JavaScript加强之自定义event事件
2013/09/21 Javascript
jQuery实现鼠标划过添加和删除class的方法
2015/06/26 Javascript
js+ajax实现获取文件大小的方法
2015/12/08 Javascript
js表单提交和submit提交的区别实例分析
2015/12/10 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
jQuery插件实现可输入和自动匹配的下拉框
2016/10/24 Javascript
解决webpack -p压缩打包react报语法错误的方法
2017/07/03 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
easyUI 实现的后台分页与前台显示功能示例
2020/06/01 Javascript
如何使用JavaScript实现无缝滚动自动播放轮播图效果
2020/08/20 Javascript
javascript自定义加载loading效果
2020/09/15 Javascript
在vs code 中如何创建一个自己的 Vue 模板代码
2020/11/10 Javascript
Python实现登录接口的示例代码
2017/07/21 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
Python对称的二叉树多种思路实现方法
2020/02/28 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
css3边框_动力节点Java学院整理
2017/07/11 HTML / CSS
Servlet方面面试题
2016/09/28 面试题
管道维修工岗位职责
2013/12/27 职场文书
关于人生的感言
2014/01/17 职场文书
高中英语教学反思
2014/02/04 职场文书
处级干部考察材料
2014/12/24 职场文书
员工手册董事长致辞
2015/07/29 职场文书
Html5新增了哪些功能
2021/04/16 HTML / CSS
MySQL库表太大怎么办? 数据库分库分表项目实践
2022/04/11 MySQL
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS