1. __construct() 构造方法
构造方法是在PHP类实例化时自动调用的特殊方法。它用于初始化新创建的对象,并可以接受参数。
以下是一个示例:
class MyClass {
public function __construct($name) {
$this->name = $name;
}
public function sayHello() {
echo "Hello, " . $this->name;
}
}
$obj = new MyClass("John");
$obj->sayHello();
在上面的代码中,我们定义了一个名为MyClass的类,并在构造方法中接受一个名为$name的参数。在实例化对象时,我们传递一个名为"John"的参数,并调用了sayHello()方法。
构造方法的作用:
初始化对象的属性
执行对象的自定义初始化逻辑
接受参数并进行处理
2. __destruct() 析构方法
析构方法是在一个对象即将被销毁时自动调用的方法。它可以用于清理对象使用的资源,例如关闭数据库连接或释放内存。
以下是一个示例:
class MyClass {
public function __construct() {
echo "Constructor called";
}
public function __destruct() {
echo "Destructor called";
}
}
$obj = new MyClass(); // 输出 "Constructor called"
unset($obj); // 输出 "Destructor called"
在上面的代码中,我们定义了一个名为MyClass的类,并在构造方法和析构方法中分别输出了一条消息。当我们创建一个新的对象并销毁它时,在构造方法和析构方法中的消息都会被输出。
析构方法的作用:
释放对象使用的资源
执行对象的清理逻辑
3. __toString() 魔术方法
__toString()方法用于将对象转换为字符串。当直接使用echo或print等函数输出一个对象时,PHP会自动调用该对象的__toString()方法。
以下是一个示例:
class MyClass {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function __toString() {
return $this->name;
}
}
$obj = new MyClass("John");
echo $obj; // 输出 "John"
在上面的代码中,我们定义了一个名为MyClass的类,并在__toString()方法中返回了$name属性的值。当我们使用echo输出$obj对象时,PHP会自动调用__toString()方法并输出"John"。
__toString()方法的作用:
将对象转换为字符串
方便对象的输出和显示