php中self和this的区别与用法详细介绍

php中self和this的区别与用法详细介绍

内容导读

收集整理的这篇技术教程文章主要介绍了php中self和this的区别与用法详细介绍,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2013字,纯文字阅读大概需要3分钟

内容图文

PHP中this和self关键字的区别

1、self代表类,$this代表对象
2、能用$this的地方一定使用self,能用self的地方不一定能用$this
3、静态的方法中不能使用$this,静态方法给类访问的。

PHP中this和self关键字的用法:

self是引用静态类的类名,而$this是引用非静态类的实例名。

static 的属性和方法,只能访问static的属性和方法,不能类访问非静态的属性和方法。

因为静态属性和方法被创建时,可能还没有任何这个类的实例可以被调用。

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;


?>


类没有创建,静态属性就可以直接使用。

静态方法

静态方法不需要所在类被实例化就可以直接使用。

使用的方式是 类名::静态方法名

相了解更多相关内容请访问PHP中文网:PHP视频教程

以上就是php中self和this的区别与用法详细介绍的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的php中self和this的区别与用法详细介绍全部内容,希望文章能够帮你解决php中self和this的区别与用法详细介绍所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com