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 相关文章推荐
Search Engine Friendly的URL设计
Oct 09 PHP
php win下Socket方式发邮件类
Aug 21 PHP
php 获取可变函数参数的函数
Aug 26 PHP
关于PHP结束标签的使用细节探讨及联想
Mar 04 PHP
php自动获取关键字的方法
Jan 06 PHP
smarty内置函数config_load用法实例
Jan 22 PHP
smarty模板引擎中自定义函数的方法
Jan 22 PHP
PHP实现的带超时功能get_headers函数
Feb 10 PHP
PHP学习笔记(二):变量详解
Apr 17 PHP
php递归调用删除数组空值元素的方法
Apr 28 PHP
php的api数据接口书写实例(推荐)
Sep 22 PHP
PHP文件上传小程序 适合初学者学习!
May 23 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
关于拼配咖啡,你要知道
2021/03/03 咖啡文化
将数组写入txt文件 var_export
2009/04/21 PHP
动态样式类封装JS代码
2009/09/02 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
2010/04/02 Javascript
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
2013/07/10 Javascript
js确认删除对话框效果的示例代码
2014/02/20 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
Jquery实现仿京东商城省市联动菜单
2015/11/19 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
用window.onerror捕获并上报Js错误的方法
2016/01/27 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
微信小程序 Page()函数详解
2016/10/17 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
mui框架移动开发初体验详解
2017/10/11 Javascript
angularjs 获取默认选中的单选按钮的value方法
2018/02/28 Javascript
vue实现动态按钮功能
2019/05/13 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
vue实现弹幕功能
2019/10/25 Javascript
微信小程序自定义弹出层效果
2020/05/26 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
python self,cls,decorator的理解
2009/07/13 Python
对于Python的Django框架部署的一些建议
2015/04/09 Python
Python爬虫爬验证码实现功能详解
2016/04/14 Python
Python文件操作基本流程代码实例
2017/12/11 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
支持IE8的纯css3开发的响应式设计动画菜单教程
2014/11/05 HTML / CSS
苹果音乐订阅:Apple Music
2018/08/02 全球购物
css animation配合SVG制作能量流动效果
2021/03/24 HTML / CSS
会计主管岗位职责范文
2013/11/08 职场文书
医科大学生毕业的自我评价分享
2013/11/12 职场文书
师德师风承诺书
2014/05/23 职场文书
幼儿园奖惩制度范本
2015/08/05 职场文书
Python的property属性详细讲解
2022/04/11 Python