自己(self)和这是用php编写的(this in php)的区别

静态函数只能使用静态变量。静态函数和变量通过self::functionName()或self::variableName引用。在上面显示的示例中,当在类的静态方法[named staticFunction()]中使用时,静态变量用类名(exampleClass::$foo)引用,或者用self::(self::$foo)引用。...

PHP supports classes and other object-oriented c***tructs. 静态函数变量在php中,类与类的任何特定实例(换句话说,对象)都没有关联。See difference between 对象.

Instead, static functi*** and variables are associated with the class definition itself. In other words, all instances of a class share the same static variable. Within the context of a method (function) of a class, static variables and functi*** are accessed using 自我:. 其他方法和变量用于类的对象(实例)上下文中,使用这个->.

对比图

自我与此比较图表
自己
可用于静态函数 是的
可访问的类变量和方法 自我: $此->(请注意,php>5.3允许将$这与静态变量一起使用使用$this::$foo$如果$福是静态变量,那么这个->福仍然是未定义的。)
需要实例化对象 是的

自己(self) vs. 这在php示例中得到了体现(this in php examples)

class exampleClass { public static $foo; public $bar; public function regularFunction() { echo $this->bar; } public static function staticFunction() { echo self::$foo; } public static function anotherStatFn() { self::staticFunction(); } public function regularFnUsingStaticVar() { echo self::$foo; } // NOTE: As of PHP 5.3 using $this::$bar instead of self::$bar is allowed } exampleClass::$foo = "Hello"; $obj = new exampleClass(); $obj->bar = "World!"; exampleClass::staticFunction(); /* prints Hello */ $obj->regularFunction(); /* prints World! */

静态函数只能使用静态变量。静态函数和变量通过self::functionName()或self::variableName引用。在上面显示的示例中,当在类的静态方法[named staticFunction()]中使用时,静态变量用类名(exampleClass::$foo)引用,或者用self::(self::$foo)引用。

类的常规函数和变量需要引用对象上下文。它们不能没有对象上下文而存在。对象上下文由$this提供。在上面的示例中,$bar是一个正则变量,因此它被引用为$obj->bar(在带有变量obj的对象上下文中)或作为$this->条(同样在对象的方法中的对象上下文中)。

self不使用前面的$,因为self不表示变量,而是类本身构造$它引用了一个特定的变量,所以它前面有一个$。

参考文献

  • 静态关键字-PHP.net

  • 发表于 2021-07-04 10:28
  • 阅读 ( 278 )
  • 分类:IT

你可能感兴趣的文章

得到(get)和php中的post方法(post method in php)的区别

PHP中GET和POST方法的关键区别在于GET方法通过将信息附加到页面请求来发送信息,而POST方法通过HTTP头发送信息。 PHP是一种为web开发而设计的服务器端脚本语言。GET和POST方法是客户端计算机向web服务器发送信息的两种方法。这...

  • 发布于 2020-10-17 03:43
  • 阅读 ( 188 )

核心php(core php)和卡克普(cakephp)的区别

...HP是一种用于web开发的服务器端脚本语言,而CakePHP是用PHP编写的开源web框架。 与核心PHP相比,CakePHP使代码更具组织性、可重用性和更容易更改。它还拥有比核心PHP更多的预构建、预测试的工具,开发人员更容易处理同一应用程...

  • 发布于 2020-10-18 17:56
  • 阅读 ( 256 )

菲律宾比索(php)和python(python)的区别

...交互式的,因为程序员可以使用Python提示符与解释器交互编写程序。PyCharm或Eclipse等ide可以用于Python应用程序开发。它们包含必要的文本编辑器、调试器等。Python程序更易于测试、调试和维护。Python支持的主要数据类型是数字、...

  • 发布于 2020-10-18 23:19
  • 阅读 ( 270 )

5最佳免费php脚本资源在线

...独立运行。这使得共享代码变得非常容易,其他人只需**自己的站点,就可以开箱即用。 ...

  • 发布于 2021-03-16 14:36
  • 阅读 ( 317 )

最糟糕和最难避免的编程语言就像瘟疫一样

...是唯一一种有着“丰富多彩”名字的深奥语言,所以你要自己去好奇! ...

  • 发布于 2021-03-21 17:33
  • 阅读 ( 235 )

asp公司(asp)和菲律宾比索(php)的区别

...,所以它可以在Windows、Linux、Unix等环境下工作。因此,这是ASP和PHP的一个主要区别。 IDE公司 此外,microsoftvisualstudio为ASP开发提供了丰富而强大的IDE。NetBeans、zendstudio和Eclipse用于用PHP开发应用程序。 安全 另外,虽然ASP或ASP.NET...

  • 发布于 2021-07-01 02:31
  • 阅读 ( 391 )

日食(eclipse)和网虫(netbeans)的区别

...扩展IDE的功能。此外,程序员可以使用Eclipse编写和提供自己的插件。 什么是网虫(netbeans)? NetBeans是一种常用于Java的IDE。它允许使用一组称为模块的模块化软件组件开发应用程序。此外,NetBeans可用于各种平台,如Windows、macos、...

  • 发布于 2021-07-01 03:57
  • 阅读 ( 390 )

zend框架1(zend framework 1)和2.(2)的区别

...比如名称空间、后期静态绑定、lambda函数和闭包。因此,这是Zend框架1和2之间的一个重要区别。 类型 此外,zend1是旧版本,而zend2是新版本。 速度 速度也是zendframework1和zendframework2的主要区别。zend2比zend1慢,因为它在后台调用...

  • 发布于 2021-07-01 06:40
  • 阅读 ( 332 )

抽象类(abstract class)和php中的接口(interface in php)的区别

...A和B。因此,该类提供methodA和methodB的实现。类测试也有自己的方法methodTest。第26行,创建一个测试对象。然后使用该对象调用methodA、method和methodTest。 抽象类(abstract class)和php中的接口(interface in php)的区别 定义 PHP中的抽象类是...

  • 发布于 2021-07-01 18:08
  • 阅读 ( 229 )

文字出版社(wordpress)和内容管理系统(drupal)的区别

...到基本的网站设计和网页的主要目的是博客。WordPress还为自己动手的网站设计者提供了各种各样的主题。WordPress也很容易理解和创建,因此页面加载速度很快,开发所需时间不多。然而,当试图创建复杂而庞大的网站时,Drupal是...

  • 发布于 2021-07-12 08:30
  • 阅读 ( 154 )
dex655
dex655

0 篇文章

相关推荐