浅析php静态方法与非静态方法的用法区别

上传人:bin****86 文档编号:59391711 上传时间:2018-11-07 格式:DOCX 页数:10 大小:17.79KB
返回 下载 相关 举报
浅析php静态方法与非静态方法的用法区别_第1页
第1页 / 共10页
浅析php静态方法与非静态方法的用法区别_第2页
第2页 / 共10页
浅析php静态方法与非静态方法的用法区别_第3页
第3页 / 共10页
浅析php静态方法与非静态方法的用法区别_第4页
第4页 / 共10页
浅析php静态方法与非静态方法的用法区别_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《浅析php静态方法与非静态方法的用法区别》由会员分享,可在线阅读,更多相关《浅析php静态方法与非静态方法的用法区别(10页珍藏版)》请在金锄头文库上搜索。

1、我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解浅析php静态方法与非静态方法的用法区别在php编程中,static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为“类属性”或“类方法”如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号“:”调用。static关键字可以用来修饰变量、方法。不经过实例化,就可以直接访问类中static的属性和static的方法。static 的属性和方法,只能访问static的属性和方法,不能类访问非静态的属性

2、和方法。因为静态属性和方法被创建时,可能还没有任何这个类的实例可以被调用。static的属性,在内存中只有一份,为所有的实例共用。使用self: 关键字访问当前类的静态成员。一个类的所有实例,共用类中的静态属性。即在内存中即使有多个实例,静态的属性也只有一份。例子,设置了一个计数器$count属性,设置private 和 static 修饰。这样,外界并不能直接访问$count属性。而程序运行的结果也看到多个实例在使用同一个静态的$count 属性。class user private static $count = 0 ; /记录所有用户的登录情况. public function _con

3、struct() self:$count = self:$count + 1; public function getcount() return self:$count; public function _destruct() self:$count = self:$count - 1; $user1 = new user(); $user2 = new user(); $user3 = new user(); echo now here have . $user1-getcount() . user; echo ; unset($user3); echo now here have . $

4、user1-getcount() . user; ?二,静态属性直接调用静态属性不需要实例化就可以直接使用,在类还没有创建时就可以直接使用。使用方式:类名: 静态属性名class math public static $pi = 3.14; / 求一个半径3的园的面积。 $r = 3; echo 半径是 $r 的面积是; echo math:$pi * $r * $r; echo ; /这里我觉得 3.14 不够精确,我把它设置的更精确。 math:$pi = 3.9793; echo 半径是 $r 的面积是; echo math:$pi * $r * $r; ?类没有创建,静态属性就可以直接

5、使用。那静态属性在什么时候在内存中被创建?在php中没有看到相关的资料。引用java中的概念,来解释应该也具有通用性。静态属性和方法,在类被调用时创建。三,静态方法静态方法不需要所在类被实例化就可以直接使用。使用的方式是类名:静态方法名继续写这个math类,用来进行数学计算。设计一个方法用来算出其中的最大值。既然是数学运算,也没有必要去实例化这个类,如果这个方法可以拿过来就用就方便多了。这只是为了演示static方法而设计的这个类。在php提供了 max() 函数比较数值。class math public static function max($num1, $num2) return $n

6、um1 $num2 ? $num1 : $num2; $a = 99; $b = 88; echo 显示 $a 和 $b 中的最大值是; echo ; echo math:max($a, $b); echo ;echo ;echo ; $a = 99; $b = 100; echo 显示 $a 和 $b 中的最大值是; echo ; echo math:max($a,$b); ?静态方法如何调用静态方法第一个例子,一个静态方法调用其它静态方法时,使用self:/ 实现最大值比较的math类。 class math public static function max($num1, $num2)

7、 return $num1 $num2 ? $num1 : $num2; public static function max3($num1, $num2, $num3) $num1 = self:max($num1, $num2); $num2 = self:max($num2, $num3); $num1 = self:max($num1, $num2); return $num1; $a = 99; $b = 77; $c = 88; echo 显示 $a $b $c 中的最大值是; echo ; echo math:max3($a, $b, $c); ?静态方法调用静态属性使用self

8、: 调用本类的静态属性。/ class circle public static $pi = 3.14; public static function circleacreage($r) return $r * $r * self:$pi; $r = 3; echo 半径 $r 的圆的面积是 . circle:circleacreage($r); ?静态方法不能调用非静态属性 。不能使用self:调用非静态属性。/ 这个方式是错误的 class circle public $pi = 3.14; public static function circleacreage($r) return $

9、r * $r * self:pi; $r = 3; echo 半径 $r 的圆的面积是 . circle:circleacreage($r); ?也不能使用 $this 获取非静态属性的值。静态方法调用非静态方法php5中,在静态方法中不能使用 $this 标识调用非静态方法。/ 实现最大值比较的math类。 class math public function max($num1, $num2) echo bad; return $num1 $num2 ? $num1 : $num2; public static function max3($num1, $num2, $num3) $num

10、1 = $this-max($num1, $num2); $num2 = $this-max($num2, $num3); $num1 = $this-max($num1, $num2); return $num1; $a = 99; $b = 77; $c = 188; echo 显示 $a $b $c 中的最大值是; echo ; echo math:max3($a, $b, $c); /同样的这个会报错?当一个类中有非静态方法被self: 调用时,系统会自动将这个方法转换为静态方法。/ 实现最大值比较的math类。 class math public function max($num1

11、, $num2) return $num1 $num2 ? $num1 : $num2; public static function max3($num1, $num2, $num3) $num1 = self:max($num1, $num2); $num2 = self:max($num2, $num3); $num1 = self:max($num1, $num2); return $num1; $a = 99; $b = 77; $c = 188; echo 显示 $a $b $c 中的最大值是; echo ; echo math:max3($a, $b, $c); ?以上这篇浅析php静态方法与非静态方法的用法区别就是小编分享给大家的全部内容了,希望能给大家一个参考 对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号