何时直接调用class方法?
<?php
Class::method();
?>
何时在对象实例化后调用类方法?
<?php
$object = new Class();
$object->method();
?>
两者之间有什么区别?
答案 0 :(得分:1)
定义为static的方法将直接调用这些方法。 就像function1是静态的那样,它将被称为
A::function1();
class A
{
public static function function1()
{
$a = "Hi";
return $a;
}
public function function2()
{
$a = "Hi";
return $a;
}
}
第二种方法不是静态的,它将在A类的对象上调用,如下所示
$object = new A();
$object->function2();
答案 1 :(得分:0)
::
范围解析运算符,用于不带对象的直接调用静态类方法
Class::method();
您可以在此方法中使用类变量$this->...
。
$object = new Class();
new
是类的创建对象,您也可以使用object
中的类变量
以简单的方式,对象是类的实例。
答案 2 :(得分:0)
如果您正在使任何类函数静态,那么您可以使用范围解析运算符来访问,如第一种情况。如果是静态函数$this
在函数内部不可用。
<?php
class Product
{
public static function method() //static function
{
echo "static function" ;
}
}
Product::method(); // we can make direct call
?>
而在第二种情况下,对象被创建,我们正在通过对象访问类方法。
$object = new Class();
$object->method();