php对象的调用方法的区别在于:1、使用“->”调用对象的成员属性和方法,需要先实例化对象,然后通过对象变量来进行访问,而使用“::”调用类的静态属性和方法,不需要先实例化对象,而是直接使用类名和静态属性/方法名来访问;2、使用“->”可以访问到非静态属性和方法,同时也可以动态改变属性和调用方法,而使用“::”无法访问非静态属性和方法,也不能改变属性值但相对于动态调用更快一些。
本教程操作系统:Windows10系统、php8.1.3版本、Dell G3电脑。
在 PHP 中,常见的对象调用方法有 `->` 和 `::` 两种。
其中,`->` 用于调用对象的成员属性和方法,`::` 则用于调用类的静态属性和方法。
一、 `->` 调用对象的成员属性和方法
使用 `->` 调用对象的成员属性和方法,需要先实例化对象,然后通过对象变量来进行访问。这种方式的优点是可以访问到非静态属性和方法,同时也可以动态改变属性和调用方法。缺点是相对于静态调用稍微慢一些,因为需要先实例化对象。
示例代码:
```php class Person { public $name; public function sayHello() { echo "Hello, my name is {$this->name}!"; } } $person = new Person(); $person->name = 'Alice'; $person->sayHello(); // 输出:Hello, my name is Alice! ```
在上面的例子中,我们创建了一个 `Person` 类,并实例化了一个 `$person` 对象。通过 `$person->name` 来设置了 `name` 属性,然后通过 `$person->sayHello()` 来调用了 `sayHello()` 方法,从而输出了问候语。
二、 `::` 调用类的静态属性和方法
使用 `::` 调用类的静态属性和方法,不需要先实例化对象,而是直接使用类名和静态属性/方法名来访问。这种方式的优点是相对于动态调用更快一些,因为不需要先实例化对象。缺点是无法访问非静态属性和方法,也不能改变属性值。
以下是一个简单的 PHP 代码示例,其中演示了如何调用类的静态属性和方法:
```php <?php class MyClass { public static $myStaticProperty = "Hello World!"; public static function myStaticMethod() { echo "This is a static method."; } } echo MyClass::$myStaticProperty; // 输出 "Hello World!" MyClass::myStaticMethod(); // 输出 "This is a static method." ?> ```
首先声明了一个名为 `MyClass` 的类。在该类中,定义了一个名为 `$myStaticProperty` 的公共(public)静态属性,并将其设置为字符串 `"Hello World!"`。接着,还定义了一个名为 `myStaticMethod()` 的公共静态方法,该方法仅打印一条消息。
要访问这些静态属性和方法,可以使用类名加上作用域解析运算符 `::` 来调用它们。例如,可以使用 `MyClass::$myStaticProperty` 来访问 `$myStaticProperty` 属性并输出其值,或者使用 `MyClass::myStaticMethod()` 来调用 `myStaticMethod()` 方法并执行其中的代码。