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 has encountered an Access Violation
Jan 15 PHP
php中防止SQL注入的最佳解决方法
Apr 25 PHP
php5.3 注意事项说明
Jul 01 PHP
zend framework文件上传功能实例代码
Dec 25 PHP
CodeIgniter框架过滤HTML危险代码
Jun 12 PHP
PHP中__FILE__、dirname与basename用法实例分析
Dec 01 PHP
php实现可运算的验证码
Nov 10 PHP
Yii2增删改查之查询 where参数详细介绍
Aug 08 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
Aug 15 PHP
Laravel 实现密码重置功能
Feb 23 PHP
关于laravel5.5的定时任务详解(demo)
Oct 23 PHP
Laravel等框架模型关联的可用性浅析
Dec 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
xml+php动态载入与分页
2006/10/09 PHP
php &amp;&amp; 逻辑与运算符使用说明
2010/03/04 PHP
php取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
php中fgetcsv()函数用法实例
2014/11/28 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
Jquery replace 字符替换实现代码
2010/12/02 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
浅析AngularJS中的生命周期和延迟处理
2015/06/18 Javascript
javascript中undefined与null的区别
2015/08/16 Javascript
JavaScript中removeChild 方法开发示例代码
2016/08/15 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
JavaScript作用域、闭包、对象与原型链概念及用法实例总结
2018/08/20 Javascript
vue项目中使用tinymce编辑器的步骤详解
2018/09/11 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
如何手写一个简易的 Vuex
2020/10/10 Javascript
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
python中requests库session对象的妙用详解
2017/10/30 Python
用python实现的线程池实例代码
2018/01/06 Python
python 通过视频url获取视频的宽高方式
2019/12/10 Python
python根据字典的键来删除元素的方法
2020/08/16 Python
收集的7个CSS3代码生成工具
2010/04/17 HTML / CSS
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
英国安全产品购物网站:The Safe Shop
2017/03/20 全球购物
JAVA程序员自荐书
2014/01/30 职场文书
党支部特色活动方案
2014/08/20 职场文书
给老婆道歉的话
2015/01/20 职场文书
2016会计专业自荐信范文
2016/01/28 职场文书
2019年朋友圈经典励志语录50条
2019/07/05 职场文书
详细介绍python类及类的用法
2021/05/31 Python
总结一些Java常用的加密算法
2021/06/11 Java/Android
Django Paginator分页器的使用示例
2021/06/23 Python
TV动画《间谍过家家》公开PV
2022/03/20 日漫
vue实现列表垂直无缝滚动
2022/04/08 Vue.js