企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
# this、self、static、parent、super ## **this、self、static、parent** **this **:只能在**类的内部**调用;$this是指向对象实例的一个指针(即this是类的对象.类对象在实例化的时候来确定指向,即需要new才能存在),不指向任何其他对象或类 **self** :self是指向**类本身或者当前对象所属的类**,也就是self是**不指向任何已经实例化的对象** **static** :运行时中的当前类 **parent** :是指向父类的指针,一般我们**使用parent来调用父类的\*\*\*\*构造函数**(我 们这里频繁使用指针来描述,是因为没有更好的语言来表达) **super** :关键字用于从子类访问父类的变量和方法(java的) self与static无非就是看它们定义在哪的 当self定义在父类时,不管实例化子类还是父类访问的方法都是父类的 static则是谁实例化调用的谁 例子 ``` <pre class="calibre17">``` class <span class="token4">Fruit</span><span class="token3">{</span> public <span class="token5">function</span> <span class="token4">getYellow</span><span class="token3">(</span><span class="token3">)</span><span class="token3">{</span> echo <span class="token2">"Default Yellow"</span><span class="token3">;</span> <span class="token3">}</span> public static <span class="token5">function</span> <span class="token4">callself</span><span class="token3">(</span><span class="token3">)</span> <span class="token3">{</span> <span class="token">//php里,一个方法被self:: 后,它就自动转变为静态方法</span> self<span class="token3">:</span><span class="token3">:</span><span class="token4">getYellow</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span> <span class="token3">}</span> public static <span class="token5">function</span> <span class="token4">callstatic</span><span class="token3">(</span><span class="token3">)</span> <span class="token3">{</span> static<span class="token3">:</span><span class="token3">:</span><span class="token4">getYellow</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span> <span class="token3">}</span> <span class="token3">}</span> class <span class="token4">Apple</span> extends <span class="token4">Fruit</span><span class="token3">{</span> public <span class="token5">function</span> <span class="token4">getYellow</span><span class="token3">(</span><span class="token3">)</span><span class="token3">{</span> echo <span class="token2">"red"</span><span class="token3">;</span> <span class="token3">}</span> <span class="token3">}</span> Apple<span class="token3">:</span><span class="token3">:</span><span class="token4">callself</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span><span class="token">//Default Yellow</span> Apple<span class="token3">:</span><span class="token3">:</span><span class="token4">callstatic</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span><span class="token">//red</span> Fruit<span class="token3">:</span><span class="token3">:</span><span class="token4">callself</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span><span class="token">//Default Yellow</span> Fruit<span class="token3">:</span><span class="token3">:</span><span class="token4">callstatic</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span><span class="token">//Default Yellow</span> ``` ```