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 ajax 分页类代码
Nov 13 PHP
php设计模式 Chain Of Responsibility (职责链模式)
Jun 26 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
Mar 25 PHP
php实现只保留mysql中最新1000条记录
Jun 18 PHP
php实现的操作excel类详解
Jan 15 PHP
php实现word转html的方法
Jan 22 PHP
CodeIgniter连贯操作的底层原理分析
May 17 PHP
PHP数据的提交与过滤基本操作实例详解
Nov 11 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
Nov 30 PHP
PHP 断点续传实例详解
Nov 11 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
Dec 31 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
Oct 28 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
PHP图片上传类带图片显示
2006/11/25 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
setInterval,setTimeout与jquery混用的问题
2013/04/08 Javascript
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
jquery $(this).attr $(this).val方法使用介绍
2013/10/08 Javascript
js 判断上传文件大小及格式代码
2013/11/13 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
jquery实现的图片点击滚动效果
2014/04/29 Javascript
javascript里绝对用的上的字符分割函数总结
2014/07/31 Javascript
PHP PDO操作总结
2014/11/17 Javascript
Jquery操作cookie记住用户名
2016/03/29 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
2016/06/25 Javascript
js中遍历Map对象的方法
2016/07/27 Javascript
Javascript 实现简单计算器实例代码
2016/10/23 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
JS实现浏览上传文件的代码
2017/08/23 Javascript
js canvas实现简单的图像扩散效果
2020/06/28 Javascript
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
python实现上传文件到linux指定目录的方法
2020/01/03 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
小结Python的反射机制
2020/09/28 Python
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
Omio波兰:全欧洲低价大巴、火车和航班搜索和比价
2018/02/16 全球购物
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
银行会计职员个人的自我评价
2013/09/29 职场文书
公务员的自我鉴定
2013/10/26 职场文书
品德评语大全
2014/05/05 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
个人务虚会发言材料
2014/10/20 职场文书
详解Python requests模块
2021/06/21 Python
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android