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 相关文章推荐
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
Mar 15 PHP
不错的一篇面向对象的PHP开发模式(简写版)
Mar 15 PHP
php 在线打包_支持子目录
Jun 28 PHP
PHP nl2br函数 将换行字符转成 &amp;lt;br&amp;gt;
Aug 21 PHP
PHP mb_convert_encoding文字编码的转换函数介绍
Nov 10 PHP
浅析php过滤html字符串,防止SQL注入的方法
Jul 02 PHP
PHP生成唯一订单号
Jul 05 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
Mar 05 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
PHP单例模式数据库连接类与页面静态化实现方法
Mar 20 PHP
Yii框架分页技术实例分析
Aug 30 PHP
Centos7安装swoole扩展操作示例
Mar 26 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
php4的session功能评述(二)
2006/10/09 PHP
set_include_path在win和linux下的区别
2008/01/10 PHP
PHP经典面试题之设计模式(经常遇到)
2015/10/15 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
JQery jstree 大数据量问题解决方法
2010/03/09 Javascript
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
Javascript 多物体运动的实现
2014/12/24 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
jQuery 选择同时包含两个class的元素的实现方法
2016/06/01 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
2017/02/22 Javascript
jQuery输入框密码的显示隐藏【代码分享】
2017/04/29 jQuery
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
vue拖拽组件使用方法详解
2018/12/01 Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
2020/03/03 Javascript
JavaScript WeakMap使用详解
2021/02/05 Javascript
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
Django使用httpresponse返回用户头像实例代码
2018/01/26 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
解决Python一行输出不显示的问题
2018/12/03 Python
python利用re,bs4,requests模块获取股票数据
2019/07/29 Python
浅析python标准库中的glob
2020/03/13 Python
使用Django搭建网站实现商品分页功能
2020/05/22 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
使用canvas绘制超炫时钟
2014/12/17 HTML / CSS
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
悬挂训练绳:TRX
2017/12/14 全球购物
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
法国发饰品牌:Alexandre De Paris
2018/12/04 全球购物
Schecker荷兰:狗狗用品和配件
2019/06/06 全球购物
颁奖典礼主持词
2014/03/25 职场文书
财务人员担保书
2014/05/13 职场文书
典型事迹材料范文
2014/12/29 职场文书
幼儿园个人总结
2015/02/28 职场文书
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
2021/04/01 PHP