php怎么调用类中的方法
时间 : 2023-03-25 04:34:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性
在 PHP 中,调用一个类中的方法有几种不同的方式,下面我们来介绍一下常见的方式。
#### 1. 创建对象并调用方法
首先,需要创建一个对象,然后通过该对象调用方法。
```php
<?php
// 定义一个类
class MyClass {
public function myMethod() {
echo "Hello World!";
}
}
// 创建一个对象
$obj = new MyClass;
// 调用对象的方法
$obj->myMethod(); // 输出 "Hello World!"
?>
在这个例子中,我们首先定义了一个类 `MyClass`,该类有一个公共方法 `myMethod`,方法中打印输出了一个字符串。
接下来,我们创建了一个 `MyClass` 的对象 `$obj`,并通过对象调用 `myMethod` 方法,最终输出了字符串。
#### 2. 静态方式调用方法
在 PHP 中,可以通过 `::` 运算符静态调用类的方法。
```php
<?php
// 定义一个类
class MyClass {
public static function myMethod() {
echo "Hello World!";
}
}
// 静态调用对象的方法
MyClass::myMethod(); // 输出 "Hello World!"
?>
在这个例子中,我们通过 `static` 关键字定义了一个静态方法 `myMethod`。静态方法和非静态方法不同,它不需要通过对象来调用,而是通过类名来调用。
我们直接使用 `::` 运算符来调用 `MyClass` 类的 `myMethod` 方法。
#### 3. 回调函数方式调用方法
在 PHP 中,我们可以使用 `call_user_func` 或 `call_user_func_array` 函数来回调一个类的方法。
```php
<?php
// 定义一个类
class MyClass {
public function myMethod($name) {
echo "Hello, ". $name ."! <br>";
}
}
// 回调该方法
call_user_func(array(new MyClass(), "myMethod"), "John"); // 输出 "Hello, John!"
?>
在这个例子中,我们定义了一个 `MyClass` 类的方法 `myMethod`,它接收一个参数 `$name`。
我们使用 `call_user_func` 函数回调 `myMethod` 方法,并传入一个字符串参数 `"John"`。
> 注意:`call_user_func` 函数的第一个参数必须是一个回调函数,可以是函数名字符串、匿名函数、方法名数组。
#### 4. 字符串方式调用方法
可以使用字符串方式来调用类的方法,不论该方法是静态还是非静态方法。
```php
<?php
// 定义一个类
class MyClass {
public function myMethod($name) {
echo "Hello, ". $name ."! <br>";
}
}
// 字符串方式调用方法
$methodName = "myMethod";
$obj = new MyClass();
$obj->$methodName("John"); // 输出 "Hello, John!"
?>
在这个例子中,我们定义了一个 `MyClass` 类的方法 `myMethod`,它接收一个参数 `$name`。
我们定义了一个 `$methodName` 变量,存储了 `myMethod` 方法名。
然后,首先创建了一个 `MyClass` 对象 `$obj`,并使用字符串方式调用 `$methodName` 方法,并传入 `"John"` 参数。
这四种调用类的方法的方式都有各自的使用场景,可以根据具体的业务和需求来选择合适的方式。
在PHP中,调用类中的方法,需要先通过关键字`new`来创建该类的一个对象,并将该对象赋值给一个变量。然后可以使用该变量来调用该类中的方法。
例如,假设我们有一个定义如下的`Person`类:
```php
class Person {
private $name;
private $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
}
public function getAge() {
return $this->age;
}
public function setAge($age) {
$this->age = $age;
}
}
现在我们想要调用该类中的`getName`、`setName`、`getAge`和`setAge`方法,这里我们先创建一个`Person`对象:
```php
$person = new Person("Tom", 25);
这里我们传递了两个参数,`"Tom"`和`25`,这些参数将会被传递给类的构造函数。现在,我们可以使用该对象来调用`Person`类中的方法,如下所示:
```php
$name = $person->getName(); // 调用getName方法,并将返回值赋值给$name变量
echo "Name: " . $name . "<br>"; // 输出Name: Tom
$person->setName("Jerry"); // 调用setName方法,将"name"属性设为"Jerry"
$name = $person->getName(); // 再次调用getName方法,将$name变量设为"Jerry"
echo "Name: " . $name . "<br>"; // 输出Name: Jerry
$age = $person->getAge(); // 调用getAge方法,并将返回值赋值给$age变量
echo "Age: " . $age . "<br>"; // 输出Age: 25
$person->setAge(30); // 调用setAge方法,将"age"属性设为30
$age = $person->getAge(); // 再次调用getAge方法,将$age变量设为30
echo "Age: " . $age . "<br>"; // 输出Age: 30
如上所示,我们可以使用该类的对象来调用该类中的方法,从而实现对类的操作。由于在上面的`Person`类中,属性`$name`和`$age`都是私有的,因此不能直接使用`$person->name`或`$person->age`来访问它们。这些属性只能在类的内部使用。但是,我们可以使用类中提供的getters和setters方法来操作这些属性。
上一篇
web开发用php怎么样
下一篇
php怎么接收复选框
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章