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编程与应用
Oct 09 PHP
php+javascript的日历控件
Nov 19 PHP
用PHP获取Google AJAX Search API 数据的代码
Mar 12 PHP
PHP 获取客户端真实IP地址多种方法小结
May 15 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
Jul 23 PHP
给初学者的30条PHP最佳实践(荒野无灯)
Aug 02 PHP
使用PHP下载CSS文件中的图片的代码
Sep 24 PHP
php去除HTML标签实例
Nov 06 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
Dec 24 PHP
zend framework重定向方法小结
May 28 PHP
PHP编程之设置apache虚拟目录
Jul 08 PHP
php代码调试利器firephp安装与使用方法分析
Aug 21 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
动态新闻发布的实现及其技巧
2006/10/09 PHP
php 修改、增加xml结点属性的实现代码
2013/10/22 PHP
PHP针对字符串开头和结尾的判断方法
2016/07/11 PHP
php校验公钥是否可用的实例方法
2019/09/17 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
浅谈JavaScript函数参数的可修改性问题
2013/12/05 Javascript
jquery插件validation实现验证身份证号等
2015/06/04 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
手机软键盘弹出时影响布局的解决方法
2016/12/15 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
2016/12/25 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
js+html获取系统当前时间
2017/11/10 Javascript
JS基于递归实现网页版计算器的方法分析
2017/12/20 Javascript
JS实现的新闻列表自动滚动效果示例
2019/01/30 Javascript
[01:44]剑指西雅图 展望TI之CIS战队专访
2014/06/25 DOTA
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
python创建列表和向列表添加元素的实现方法
2017/12/25 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
Python Lambda函数使用总结详解
2019/12/11 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
Python 发送邮件方法总结
2020/08/10 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
荷兰美妆护肤品海淘网站:Beautinow(中文)
2020/11/22 全球购物
材料加工工程求职信
2014/02/19 职场文书
元宵晚会主持词
2014/03/25 职场文书
社团活动总结范文
2014/04/26 职场文书
功夫熊猫观后感
2015/06/10 职场文书
2015年重阳节主持词
2015/07/04 职场文书
通讯稿范文
2015/07/22 职场文书
CSS3实现模糊背景的三种效果示例
2021/03/30 HTML / CSS
Go 中的空白标识符下划线
2022/03/25 Golang