php基础知识:类与对象(5) static


Posted in PHP onDecember 13, 2006

Declaring class members or methods as static makes them accessible without needing an instantiation of the class. A member declared as static can not be accessed with an instantiated class object (though a static method can). 
声明静态的类变量和方法可以不需要实例化类对象的情况下对他们进行调用。静态类不能被类对象调用。(类的静态方法可以)。//注意看第一个例子,在一个非静态的方法中调用了静态的变量。唯一的不同是用了self。难道用了self就可以????不知道???需要一个试验。

The static declaration must be after the visibility declaration. For compatibility with PHP4, if no visibility declaration is used, then the member or method will be treated as if it was declared as public. 
静态声明必须必须是显式的声明。为了兼容PHP4,如果没有显式声明的对象或者方法,被当作声明为public。

Because static methods are callable without an instance of the object created, the pseudo variable $this is not available inside the method declared as static. 
因为静态方法不需要实例化类对象来调用,所以伪变量$this在静态方法中也是不可用的。 

In fact static method calls are resolved at compile time. When using an explicit class name the method is already identified completely and no inheritance rules apply. If the call is done by self then self is translated to the current class, that is the class the code belongs to. Here also no inheritance rules apply. 
实际上,静态的方法调用在编译时已经确定了。(这段我不会翻译。???不明白???)
求了很久求来的翻译如下:
------------------------------------------------
实际上,静态方法的调用在编译时解决。当使用一个明确的类名时,方法已经被完全识别而不需要应用继承规则。如果由自身调用,那么自身被解析成当前的类,也就是代码所属的类。这里也没有应用继承规则。
但是一个新的问题:
这里不一定有继承产生,为什么会提到继承规则?(???不明白????)

Static properties cannot be accessed through the object using the arrow operator ->. Calling non-static methods statically generates an E_STRICT level warning. 
静态成员不能被类的对象通过箭头符号->来调用。静态的调用一个非静态方法会导致一个E_STRICT级别的警告。

静态成员例:

class Foo  
{  
   public static $my_static = 'foo';   
   public function staticValue() {  
       return self::$my_static;//注意这里!!!!  
       //return $my_static;//这样写会不会出错。需要试验  
   }  
}  class Bar extends Foo  
{  
   public function fooStatic() {  
       return parent::$my_static;//注意这里!!!!  
   }  
}  
print Foo::$my_static . " n";  
$foo = new Foo();  
print $foo->staticValue() . " n";  
print $foo->my_static . " n";      // 未定义的"Property" my_static   
// $foo::my_static is not possible  
print Bar::$my_static . " n";  
$bar = new Bar();  
print $bar->fooStatic() . " n";  
静态方法例:  
class Foo {  
   public static function aStaticMethod() {  
       // ...  
   }  
}  
Foo::aStaticMethod(); 
PHP 相关文章推荐
一个PHP验证码类代码分享(已封装成类)
Jul 17 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
Jan 11 PHP
基于php split()函数的用法详解
Jun 05 PHP
浅谈Eclipse PDT调试PHP程序
Jun 09 PHP
使用PHP函数scandir排除特定目录
Jun 12 PHP
php中动态修改ini配置
Oct 14 PHP
ThinkPHP处理Ajax返回的方法
Nov 22 PHP
Thinkphp实现自动验证和自动完成
Dec 19 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
May 27 PHP
PHP 数组基本操作方法详解
Jun 17 PHP
PHP导出带样式的Excel示例代码
Aug 28 PHP
php自定义函数实现统计中文字符串长度的方法小结
Apr 15 PHP
php基础知识:类与对象(4) 范围解析操作符(::)
Dec 13 #PHP
php基础知识:类与对象(3) 构造函数和析构函数
Dec 13 #PHP
php基础知识:类与对象(2) 自动加载对象
Dec 13 #PHP
php基础知识:类与对象(1)
Dec 13 #PHP
php基础知识:函数基础知识
Dec 13 #PHP
php基础知识:控制结构
Dec 13 #PHP
《PHP边学边教》(04.编写简易的通讯录――视频教程1)
Dec 13 #PHP
You might like
介绍几个array库的新函数 php
2006/12/29 PHP
php清除和销毁session的方法分析
2015/03/19 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
2016/12/02 PHP
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
基于jquery的网页SELECT下拉框美化代码
2010/10/28 Javascript
关于JavaScript与HTML的交互事件
2013/04/12 Javascript
js判断屏幕分辨率的代码
2013/07/16 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
JavaScript 32位整型无符号操作示例
2013/12/08 Javascript
javascript实现全角与半角字符的转换
2015/01/07 Javascript
jQuery使用fadein方法实现渐出效果实例
2015/03/27 Javascript
javascript事件冒泡实例分析
2015/05/13 Javascript
javascript实现rgb颜色转换成16进制格式
2015/07/10 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
javascript实现标签切换代码示例
2016/05/22 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
分享ES6的7个实用技巧
2018/01/18 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
2019/03/07 jQuery
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
[43:41]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
解析Python编程中的包结构
2015/10/25 Python
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
Python使用matplotlib绘制余弦的散点图示例
2018/03/14 Python
python和mysql交互操作实例详解【基于pymysql库】
2019/06/04 Python
Django REST framework 分页的实现代码
2019/06/19 Python
Pytorch之保存读取模型实例
2019/12/30 Python
澳大利亚礼品篮网站:Macarthur Baskets
2019/10/14 全球购物
幼儿园教师个人反思
2014/01/30 职场文书
幼儿园元旦活动感言
2014/03/02 职场文书
小学生操行评语大全
2014/04/22 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
信用卡工作证明模板
2014/09/14 职场文书
国家机关领导干部民主生活会对照检查材料思想汇报
2014/09/17 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
vue使用watch监听属性变化
2022/04/30 Vue.js