- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PHP类中的静态方法使用实例
PHP类中的静态方法使用实例
在php中静态方法我们就直接在函数或变量前加一个static就可以了,使用的时候和静态变量差不多,不需要实例化,直接用::调用了,下面我来给大家举几个关于静态方法实例。
PHP也不例外!所谓静态方法(属性)就是以static关键词标注的属性或者方法(例如:静态属性public static username;)
静态方法和非静态方法最大的区别在于他们的生命周期不同,用一个实例来说明
静态方法定义
定义静态方法很简单,在声明关键词function之前加上static,例如:
代码如下复制代码
class A static function fun // do somathing 静态方法使用
使用的时候和静态变量差不多,不需要实例化,直接用::调用,例如:
代码如下复制代码
A::fun 对比普通方法
因为静态方法的调用不需要实例化, 所以在静态方法中引用类自身的属性或者方法的时候会出错,也就是形如self和$this是错误的。
代码如下复制代码
class MyClass public $num 5;
function __construct $this- num 10; function fun_1 echo I am a public method named fun_1.n;
echo The num of object is $this- num .n; static function fun_2 echo I am a static method named fun_2.n; function fun_3 $n echo The arg is $n n; $m new MyClass;
$m- fun_1 ;
$m- fun_2 ;
$m- fun_3 test ;
MyClass::fun_1 ;
MyClass::fun_2 ;
MyClass::fun_3 test ;
输出结果:
lch@localhost:php $ php class_method.php
I am a public method named fun_1.
The num of object is 10.
I am a static method named fun_2.
The arg is test
I am a public method named fun_1.
PHP Fatal error: Using $this when not in object context in /Users/lch/program/php/class_method.php on line 14
再看一实例
用一个实例来说明。
代码如下复制代码
class user public static $username; //声明一个静态属性
public $password; //声明一个非静态属性
function __construct $pwd echo ‘Username:’,self::$username; //输出静态属性
self::$username ‘admin’; //为静态属性赋值
$this- password $pwd; //为非静态属性赋值 public function show //输出类属性
echo ‘
Username:’,self::$username;
echo ‘
Password:’,$this- password; public static function sshow echo ‘
Username:’,self::$username;
echo ‘
Password:’,$this- password; user::$username ‘root’; // 为赋值user类的静态属性赋值
$objUser new user ’123456′ ; //实例化user类
$objUser- sshow ;
unset $objUser ;
echo ‘
Username:’,user::$username;
/*
* 输出结果为:
* Username:root
* Username:admin
* Password:123456
* Usern
ame:admin
* */
从这里实例中可以看出,静态属性在类实例化以前就起作用了,并且在对象被销毁时静态属性依然可以发挥作用!
文档评论(0)