PHP create()方法是在對象實例化時便執行的構造函數。它可以用來初始化一個對象的屬性或執行一些必要的操作。 通常在類中我們會聲明一個__construct()的構造函數,但其實__construct()函數在PHP5以上版本也可以使用create()方法替代。以下是一些例子來講解create()方法的詳細應用。
1、初始化屬性
class Person {
public $name;
public $age;
public static function create($name, $age) {
$person = new self();
$person->name = $name;
$person->age = $age;
return $person;
}
}
$person = Person::create("Tom", 20);
echo $person->name; // 輸出 Tom
echo $person->age; // 輸出 20
上面的例子中,我們利用create()方法初始化了一個名為Person的類的實例屬性,分別為$name和$age。通過在create()方法中聲明$name和$age兩個參數,我們便能夠通過其他代碼將其傳入create()方法中并創建一個新對象。 最后,通過$person->name和$person->age,我們也能很簡單地訪問到新創建的對象的屬性。
2、執行必要操作
class User {
private $username;
private $password;
public static function create($username, $password) {
$user = new self();
$user->username = $username;
$user->password = md5(time() . $password);
return $user;
}
}
$user = User::create("testuser", "password123");
echo $user->password; // 輸出 md5 后的密碼
上面的例子中,我們利用create()方法創建了一個名為User的類的實例,實例屬性為$username和$password。不同的是,我們在create()方法中執行了一個必要操作——將$password加密后再賦值給對象的$password屬性。 最后,我們輸出了加密后的密碼,證明我們已經成功地執行了create()方法中的加密操作。
3、實例化其他對象
class Room {
private $number;
private $size;
public static function create($number, $size) {
$room = new self();
$room->number = $number;
$room->size = $size;
$room->createManager();
$room->createCleaner();
return $room;
}
private function createManager() {
$this->manager = new Manager();
}
private function createCleaner() {
$this->cleaner = new Cleaner();
}
}
class Manager {
public $name = "Tom";
}
class Cleaner {
public $name = "Jerry";
}
$room = Room::create(101, "3x3");
echo $room->manager->name; // 輸出 Tom
echo $room->cleaner->name; // 輸出 Jerry
在上面的例子中,我們利用create()方法創建了名為Room的類的實例。在create()方法中,我們不僅初始化了對象的$number和$size屬性,還通過$room->createManager()和$room->createCleaner()兩個方法為房間創建了Manager和Cleaner兩個對象。 最終,$room->manager->name和$room->cleaner->name分別輸出了Manager和Cleaner對象的名字。
PHP create()方法是一個非常便捷的方法,它可以幫助我們快速地實例化對象并初始化對象的屬性或執行必要的操作。