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 相关文章推荐
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
Sep 02 PHP
PHP MSSQL 存储过程的方法
Dec 24 PHP
关于js与php互相传值的介绍
Jun 25 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
Nov 26 PHP
PHP实现的简单日历类
Nov 29 PHP
PHP生成plist数据的方法
Jun 16 PHP
twig里使用js变量的方法
Feb 05 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
Sep 11 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
Sep 11 PHP
解决在Laravel 中处理OPTIONS请求的问题
Oct 11 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 PHP
为你的 Laravel 验证器加上多验证场景的实现
Apr 07 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提取中文首字母
2008/04/09 PHP
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
phpcms中的评论样式修改方法
2016/10/21 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
javascript 写类方式之二
2009/07/05 Javascript
用JavaScript对JSON进行模式匹配(Part 1-设计)
2010/07/17 Javascript
Javascript中call和apply函数的比较和使用实例
2015/02/03 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
javascript中indexOf技术详解
2015/05/07 Javascript
JS在一定时间内跳转页面及各种刷新页面的实现方法
2016/05/26 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
IE下JS保存图片的简单实例
2016/07/15 Javascript
jQuery实现的兼容性浮动层示例
2016/08/02 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[48:24]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第一场 12.09
2020/12/12 DOTA
Python中规范定义命名空间的一些建议
2016/06/04 Python
Django中数据库的数据关系:一对一,一对多,多对多
2018/10/21 Python
python drf各类组件的用法和作用
2021/01/12 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
2021/02/02 Python
HTML5 canvas 基本语法
2009/08/26 HTML / CSS
软件测试工程师笔试题带答案
2015/03/27 面试题
经理秘书找工作求职信
2013/12/19 职场文书
个人求职信范文分享
2014/01/31 职场文书
廉洁校园实施方案
2014/05/25 职场文书
大学生个人求职信
2014/06/02 职场文书
励志演讲稿800字
2014/08/21 职场文书
期末复习计划
2015/01/19 职场文书
师德承诺书2015
2015/04/28 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
js中Object.create实例用法详解
2021/10/05 Javascript