各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > PHP

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

管理员 2023-09-05
PHP
132

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的区别与用法详细介绍所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

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

扫码关注

qrcode

QQ交谈

回顶部