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验证码(支持中文)
Feb 14 PHP
让PHP支持断点续传的源码
May 16 PHP
PHP5中虚函数的实现方法分享
Apr 20 PHP
php学习之流程控制实现代码
Jun 09 PHP
php抽奖小程序的实现代码
Jun 18 PHP
PHPMailer发送HTML内容、带附件的邮件实例
Jul 01 PHP
php实现的简单检验登陆类
Jun 18 PHP
CI框架整合smarty步骤详解
May 19 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
Aug 17 PHP
PHP实现对图片的反色处理功能【测试可用】
Feb 01 PHP
关于laravel框架中的常用目录路径函数
Oct 23 PHP
PHP中echo与print区别点整理
Mar 09 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
DC漫画《蝙蝠侠和猫女》图透 猫女怀孕老爷当爹
2020/04/09 欧美动漫
曾在DC漫画界反派角色扮演的演员,谁才是你心目中的小丑之王?
2020/04/09 欧美动漫
php中curl和file_get_content的区别
2014/05/10 PHP
PHP filesize函数用法浅析
2019/02/15 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
收集的网上用的ajax之chat.js文件
2007/04/08 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
2014/09/09 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
javascript截取字符串小结
2015/04/28 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
初学node.js中实现删除用户路由
2019/05/27 Javascript
vue+mock.js实现前后端分离
2019/07/24 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
打开电脑上的QQ的python代码
2013/02/10 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
对python中的pop函数和append函数详解
2018/05/04 Python
python消除序列的重复值并保持顺序不变的实例
2018/11/08 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
python中数据库like模糊查询方式
2020/03/02 Python
Python代码一键转Jar包及Java调用Python新姿势
2020/03/10 Python
Python Selenium截图功能实现代码
2020/04/26 Python
python 制作本地应用搜索工具
2021/02/27 Python
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
Aerosoles爱柔仕官网:美国舒软女鞋品牌
2017/07/17 全球购物
新西兰最大的品牌运动鞋购物网站:Platypus NZ
2017/10/27 全球购物
澳大利亚购买太阳镜和眼镜网站:Glamoureyes
2020/09/22 全球购物
大四本科生的自我评价
2013/12/30 职场文书
竞聘书怎么写,如何写?
2014/03/31 职场文书
关于晚自习早退的检讨书
2014/09/13 职场文书
个人工作表现自我评价
2015/03/06 职场文书
联村联户简报
2015/07/21 职场文书
如何在pycharm中快捷安装pip命令(如pygame)
2021/05/31 Python
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL
postgresql如何找到表中重复数据的行并删除
2023/05/08 MySQL