• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php中静态方法(static)与非静态方法的使用及区别具体分析

php 搞代码 4年前 (2022-01-22) 19次浏览 已收录 0个评论

static关键字用来修饰属性、方法,称这些属性、方法为静态属性、静态方法。

static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为“类属性”或“类方法”

如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号“::”调用。

static关键字可以用来修饰变量、方法。

不经过实例化,就可以直接访问类中static的属性和static的方法。

static 的属性和方法,只能访问static的属性和方法,不能类访问非静态的属性和方法。因为静态属性和方法被创建时本文来源gaodai#ma#com搞@@代~&码*网/搞gaodaima代码,可能还没有任何这个类的实例可以被调

用。

static的属性,在内存中只有一份,为所有的实例共用。

使用self:: 关键字访问当前类的静态成员。

一个类的所有实例,共用类中的静态属性。

也就是说,在内存中即使有多个实例,静态的属性也只有一份。

下面例子中的设置了一个计数器$count属性,设置private 和 static 修饰。

这样,外界并不能直接访问$count属性。而程序运行的结果我们也看到多个实例在使用同一个静态的$count 属性。

<?php     class user   {         private static $count = 0 ; //记录所有用户的登录情况.         public function construct() {             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 "<br />";     unset($user3);     echo "now here have " . $user1->getCount() . " user";     ?>

静态属性直接调用
静态属性不需要实例化就可以直接使用,在类还没有创建时就可以直接使用。

使用的方式是: 类名::静态属性名

<?php     class Math   {         public static $pi = 3.14;     }     // 求一个半径3的园的面积。     $r = 3;     echo "半径是 $r 的面积是<br />";     echo Math::$pi * $r * $r;     echo "<br /><br />";     //这里我觉得 3.14 不够精确,我把它设置的更精确。     Math::$pi = 3.141592653589793;     echo "半径是 $r 的面积是<br />";     echo Math::$pi * $r * $r;      ?>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php中静态方法(static)与非静态方法的使用及区别具体分析

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址