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 str_replace的替换漏洞
Mar 15 PHP
PHP UTF8编码内的繁简转换类
Jul 20 PHP
PHP实现多图片上传类实例
Jul 26 PHP
调试PHP程序的多种方法介绍
Nov 06 PHP
PHP产生不重复随机数的5个方法总结
Nov 12 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
Feb 14 PHP
php数组使用规则分析
Feb 27 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
Mar 01 PHP
Yii2超好用的日期和时间组件(值得收藏)
May 05 PHP
php解析base64数据生成图片的方法
Dec 06 PHP
php批量转换文件夹下所有文件编码的函数类
Aug 06 PHP
thinkphp5 路由分发原理
Mar 18 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中正确的使用json
2013/08/06 PHP
zf框架的数据库追踪器使用示例
2014/03/13 PHP
PHP+memcache实现消息队列案例分享
2014/05/21 PHP
php并发加锁问题分析与设计代码实例讲解
2021/02/26 PHP
JavaScript关于select的相关操作说明
2010/01/13 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
2015/02/05 Javascript
使用JavaScript刷新网页的方法
2015/06/04 Javascript
JavaScript实现非常简单实用的下拉菜单效果
2015/08/27 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
2015/12/01 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
JS焦点图,JS 多个页面放多个焦点图的实例
2016/12/08 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
浅谈vue+webpack项目调试方法步骤
2017/09/11 Javascript
浅谈JavaScript作用域和闭包
2017/09/18 Javascript
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
JavaScript 绘制饼图的示例
2021/02/19 Javascript
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
Python 爬虫的工具列表大全
2016/01/31 Python
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
Python Handler处理器和自定义Opener原理详解
2020/03/05 Python
详解h5页面在不同ios设备上的问题总结
2019/03/01 HTML / CSS
行政助理求职自荐信
2013/10/26 职场文书
国际贸易个人求职信范文
2014/01/04 职场文书
幼儿园老师辞职信
2014/01/20 职场文书
群教个人对照检查材料
2014/08/20 职场文书
竞聘自述材料
2014/08/25 职场文书
招标保密承诺书
2015/01/20 职场文书
2016年小学植树节活动总结
2016/03/16 职场文书
php png失真的原因及解决办法
2021/10/24 PHP
MySQL数据库 任意ip连接方法
2022/05/20 MySQL
create-react-app开发常用配置教程
2022/06/25 Javascript