php 静态调用与动态调用

     当用:: 使用方法是被认为该方法为静态方法, 静态方法中不允许使用$this, 因为静态方法的调用不需要实例化, 而$this是实例化後才出现的, 所以静态方法类似于一个普通的函数

    静态方法  是加栽到内存.而且还少了 NEW 的内存空间.速度相对快一点效率好点tukiz29

例:<?php
class A
{
     function
foo()
     {
         if (isset(
$this)) {
             echo
'$this is defined (';
             echo
get_class($this);
             echo
")/n";
         } else {
             echo
"/$this is not defined./n";
         }
     }
}

class
B
{
     function
bar()
     {
        
A::foo();
        //parent::foo();
     }
}

$a = new A();
$a->foo();//动态调用,因为new了对象
A::foo();//静态调用,直接用类名去调用,没有new对象
$b = new B();
$b->bar();//在对象$b中,
A::foo();进行静态调用
B::bar();
?>
所以 静态、动态调用都指类、对象对其方法的调用,动态指的是创建(new)了对象,然后用对象变量去调用方法;静态则是没有创建对象,直接用类名去调 用。至于另一个对象那就很简单了,不同的类创建不同的对象,比如class A;class B ,$a = new A();$b = new B();$a and $b 相对之间就是另一个对象了。延伸:
伪变量 $this 通常未定义,如果其所在的方法是被静态调用的话。但这不是个严格规定:如果一个方法被从另一个对象内静态调用的话,则 $this 会被定义。此时 $this 的值是那个发出调用的对象。 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值