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 相关文章推荐
基于mysql的论坛(4)
Oct 09 PHP
php mssql 时间格式问题
Jan 13 PHP
php面向对象全攻略 (十五) 多态的应用
Sep 30 PHP
php中的注释、变量、数组、常量、函数应用介绍
Nov 16 PHP
PHP读取PDF内容配合Xpdf的使用
Nov 24 PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
Jan 26 PHP
PHP文件下载实例代码浅析
Aug 17 PHP
php基于curl实现的股票信息查询类实例
Nov 11 PHP
PHP简单实现二维数组赋值与遍历功能示例
Oct 19 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
Jun 11 PHP
php使用QueryList轻松采集js动态渲染页面方法
Sep 11 PHP
PHP SESSION机制的理解与实例
Mar 22 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强制运行广告的方法
2014/12/01 PHP
使用PHP如何实现高效安全的ftp服务器(一)
2015/12/20 PHP
关于php几种字符串连接的效率比较(详解)
2017/02/22 PHP
goto语法在PHP中的使用教程
2020/09/17 PHP
Javascript与vbscript数据共享
2007/01/09 Javascript
JavaScript 异步调用框架 (Part 1 - 问题 & 场景)
2009/08/03 Javascript
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
用js脚本控制asp.net下treeview的NodeCheck的实现代码
2010/03/02 Javascript
javascript 面向对象的JavaScript类
2010/05/04 Javascript
jQuery帮助之筛选查找 children([expr])
2011/01/31 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
2012/06/04 Javascript
JavaScript移除数组元素减少长度的方法
2013/09/05 Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
2013/12/30 Javascript
jquery中animate的stop()方法作用实例分析
2015/01/30 Javascript
jQuery处理XML文件的几种方法
2016/06/14 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
浅析JavaScript中var that=this
2017/02/17 Javascript
微信小程序实现下拉刷新和轮播图效果
2017/11/21 Javascript
jquery的$().each和$.each的区别
2019/01/18 jQuery
layui添加动态菜单与选项卡
2019/07/26 Javascript
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
Python闭包执行时值的传递方式实例分析
2018/06/04 Python
selenium+python环境配置教程详解
2019/05/28 Python
python如何对链表操作
2020/10/10 Python
英国网络托管和域名领导者:Web Hosting UK
2017/10/15 全球购物
建筑工程自我鉴定
2013/10/18 职场文书
银行职员自我鉴定
2014/04/20 职场文书
关于安全的演讲稿
2014/05/09 职场文书
骨干教师申报材料
2014/12/17 职场文书
慰问信范文
2015/02/14 职场文书
廉政承诺书范文
2015/04/28 职场文书
考研经验交流会策划书
2015/11/02 职场文书
导游词之吉林吉塔
2019/11/11 职场文书
vue3不同环境下实现配置代理
2022/05/25 Vue.js
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers