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 相关文章推荐
简单的页面缓冲技术
Oct 09 PHP
PHP抽象类 介绍
Jun 13 PHP
PHP获取网址的顶级域名函数代码
Sep 24 PHP
基于empty函数的判断详解
Jun 17 PHP
php读取本地文件常用函数(fopen与file_get_contents)
Sep 09 PHP
php判断字符串在另一个字符串位置的方法
Feb 27 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
Mar 02 PHP
php实现json编码的方法
Jul 30 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
Mar 05 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
Dec 23 PHP
php json转换相关知识(小结)
Dec 21 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
Feb 15 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 session 写入数据库
2016/02/13 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
JS 强制设为首页的代码
2009/01/31 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
JavaScript阻止回车提交表单的方法
2015/12/30 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
Ajax验证用户名或昵称是否已被注册
2017/04/05 Javascript
微信小程序实现顶部选项卡(swiper)
2020/06/19 Javascript
javascript 原型与原型链的理解及实例分析
2019/11/23 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
2020/08/14 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
[45:32]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
wxPython学习之主框架实例
2014/09/28 Python
详解Python 解压缩文件
2019/04/09 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
使用Python内置模块与函数进行不同进制的数的转换
2020/04/26 Python
python dict如何定义
2020/09/02 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
canvas实现漂亮的下雨效果的示例
2018/04/18 HTML / CSS
哈利波特商店:Harry Potter Shop
2018/11/30 全球购物
荷兰的时尚市场:To Be Dressed
2019/05/06 全球购物
Saks Fifth Avenue澳洲/亚太地区:萨克斯第五大道精品百货店
2019/06/09 全球购物
Pandora西班牙官方商店:PandoraShop.es
2020/10/05 全球购物
铭万公司.net面试题笔试题
2014/07/20 面试题
校庆筹备方案
2014/03/30 职场文书
俞敏洪北大演讲稿
2014/05/22 职场文书
传播学专业毕业生自荐书
2014/07/01 职场文书
小学校园文化建设汇报材料
2014/08/19 职场文书
四风批评与自我批评范文
2014/10/14 职场文书
2015年教学管理工作总结
2015/05/20 职场文书
win10清理dns缓存
2022/04/19 数码科技
JavaScript原型链中函数和对象的理解
2022/06/16 Javascript
MySQL的意向共享锁、意向排它锁和死锁
2022/07/15 MySQL