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.ini中文版(2)
Oct 09 PHP
使用 MySQL 开始 PHP 会话
Dec 21 PHP
PHP $_SERVER详解
Jan 16 PHP
php生成随机密码的几种方法
Jan 17 PHP
第二章 PHP入门基础之php代码写法
Dec 30 PHP
使用PHP遍历文件目录与清除目录中文件的实现详解
Jun 24 PHP
PHP中使用json数据格式定义字面量对象的方法
Aug 20 PHP
php中explode函数用法分析
Nov 15 PHP
PHP中substr()与explode()函数用法分析
Nov 24 PHP
php获取四位字母和数字的随机数的实现方法
Jan 09 PHP
smarty内置函数config_load用法实例
Jan 22 PHP
PHP实现获取url地址中顶级域名的方法示例
Jun 05 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笔记之:初探PHPcms模块开发介绍
2013/04/26 PHP
ThinkPHP数据操作方法总结
2015/09/28 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
2016/05/04 PHP
php魔术方法功能与用法实例分析
2016/10/19 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
2017/10/23 PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
2020/04/23 PHP
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
jQuery动画animate方法使用介绍
2013/05/06 Javascript
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
2016/05/30 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
jquery Ajax 全局调用封装实例详解
2017/01/16 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
2017/03/01 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
Nodejs 识别图片类型的方法
2019/08/15 NodeJs
你知道JavaScript Symbol类型怎么用吗
2020/01/08 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
2020/07/30 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
浅谈JavaScript 声明提升
2020/09/14 Javascript
[01:22:42]2014 DOTA2华西杯精英邀请赛 5 24 DK VS LGD
2014/05/26 DOTA
python实现将英文单词表示的数字转换成阿拉伯数字的方法
2015/07/02 Python
实例Python处理XML文件的方法
2015/08/31 Python
python snownlp情感分析简易demo(分享)
2017/06/04 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
2018/11/29 Python
python对Excel按条件进行内容补充(推荐)
2019/11/24 Python
Python通过字典映射函数实现switch
2020/11/06 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
2021/03/03 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
CSS3中的常用选择器使用示例整理
2016/06/13 HTML / CSS
解释下列WebService名词:WSDL、SOAP、UDDI
2012/06/22 面试题
单位实习介绍信
2015/05/05 职场文书
结婚司仪主持词
2015/06/29 职场文书
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript