在PHP中 $this->,self::,static:: 都可以用来调用变量或方法,其中 $this 指向当前对象,用于访问非静态变量和非静态方法(静态变量和方法认为是类的元素);self和static都是用于访问静态变量和方法,他们区别在于,self 是访问self所在类,而static也叫延迟 ...
转载
2021-06-06 23:16:50
187阅读
2评论
tic $a="hello I am A"; function example() { echo "I am A::example()"; echo sel
转载
2023-05-16 17:06:55
42阅读
static::、self::、new self()、new static() <?php class Father{ protected static $name = "大头"; public static function father_self(){ echo self::$name."\n" ...
转载
2021-05-18 08:55:00
272阅读
因此只能用于访问静态方法或静态属性或常量。3、parent跟 sel...
原创
2023-02-22 10:00:46
72阅读
PHP延迟绑定
原创
2018-06-11 20:39:57
993阅读
再谈PHP中的self与static之前的文章中有介绍过self、static和parent的传递问题。
原创
2022-09-26 15:34:43
84阅读
new static()是php5.3以后引入新的特性,延迟静态绑定.访问的是当前实例化的那个类,那么 static 代表的就是那个类。new self() 是指的不是调用上下文,它指的是解析上下文.class Test { public static funtion getSelf(){  
原创
2017-08-14 14:44:35
752阅读
1、在类的内部方法访问已经声明为const及static的属性时,使用self::$name的形式。注意的是const属性的申明格式,const PI=3.14,而不是const $PI=3.14以下为引用的内容:class clss_a {private static $name="static class_a";const PI=3.14;public $value;public static...
转载
2010-05-07 14:24:00
87阅读
2评论
说self调用的就是本身代码片段这个类,static - PHP 5.3加进来的只得是当前这个类,有点像$this的意思,static调用的是从堆内存中提取出来,访问的是当前实例化的那个类,那么 static 代表的就是那个类,例子比较容易明白些。其实static就是调用的当前调用的类,比较抽象吧。self refers to the same class whose method th..
原创
2022-11-21 12:48:25
73阅读
PHP new self和new static的区别
原创
2016-02-18 16:27:32
1179阅读
self::与当前类静态绑定parent::与父类进行静态绑定static::与调用类进行绑定static与self,parent是不一样的,它对应的类是动态设置的,由调用类决定,如果说self和parent是静态绑定到类的话,static就是动态绑定到类,叫做:静态延迟绑定(后期静态绑定)静态绑定(self/parsent)它们与类的绑定是在代码的编译阶段进行,而static与类的绑定...
原创
2021-11-20 14:33:06
90阅读
当只有一个类,没有任何继承关系的时候,这俩是一样的,也就是返回当前类的实例对象
当存在继承关系的时候,两者有区别
比如 new self在父类里,调用的时候会返回当前这个类的实例对象
比如 new static在父类里,调用的时候会返回根据当前调用类,返回当前调用类的实例对象
<?php
namespace Tests\Unit;
use Tests\TestCase;
转载
2021-08-05 13:44:23
180阅读
1.new static()是在PHP5.3版本中引入的新特性。 2.无论是new static()还是new self(),都是new了一个新的对象。 3.这两个方法new出来的对象有什么区别呢,说白了就是new出来的到底是同一个类实例还是不同的类实例呢? 为了探究上面的问题,我们先上一段简单的代
转载
2020-06-28 11:23:00
111阅读
2评论
由于看到框架里面经常使用static::method() 于是稍微了解下static和self的区别废话少说,直接上代码class Father
{
public function __construct()
{
$this->init();
self::test();
}
public static function
原创
2018-04-19 11:28:24
8486阅读
点赞
输出结果: self调用的静态方法或属性始终表示其在使用的时候的当前类(A)的方法或属性,可以替换为其类名,但是在类名很长或者有可能变化的情况下,使用self::的方式无疑是更好的选择。 static调用的静态方法或属性会在继承中被其子类重写覆盖,应该替换为对应的子类名(B)。 parent关键字用
原创
2022-05-13 10:18:21
130阅读
1.new static()是在PHP5.3版本中引入的新特性。 2.无论是new static()还是new self(),都是new了一个新的对象。 3.这两个方法new出来的对象有什么区别呢,说白了就是new出来的到底是同一个类实例还是不同的类实例呢? 为了探究上面的问题,我们先上一段简单的代
转载
2019-03-07 11:47:00
114阅读
2评论
为了更好地理解 self、static 和 $this 的区别,先来看一个示例。<?phpclass A { protected $name = 'A'; static $alias = 'a'; const HASH = 'md5'; public function dd() { echo $this->name; echo '--';
原创
2021-03-20 21:30:31
417阅读
当static用来修饰局部变量的时候,它就改变了局部变量的存储位置,从原来的栈中存放改为静态存储区。但是局部静态变量在离开作用域之后,并没有被销毁,而是仍然驻留在内存当中,直到程序结束,只不过我们不能再对他进行访问。 静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静
转载
2021-01-11 14:00:00
59阅读
在学习编程的过程中,我觉得不止要获得课本的知识,更多的是学习面对问题,如何解决,这样我们才能走在最前方,更多Java学习,请搜索疯狂Java; 逐步深入的学习,都会发现主函数的修饰符中的static关键字,亦或是在定义一个函数的时候,有main函数直接访问也会定义成static void method(),如下面的程序片段: class Test
{
static void meth
转载
2023-12-22 21:52:26
32阅读
<?php
/**
* Created by PhpStorm.
* User: 27394
* Date: 2016/11/15
* Time: 8:35
*/
class A{
pu
原创
2016-11-15 08:44:21
521阅读