Có cách nào để làm cho nó hoạt động không? Xem ví dụ:thay thế lớp trong php
class car {
function __construct($type){
switch ($type) {
case 'big' : return new big_car();
case 'small' : return new small_car();
}
}
function whatisit() {
echo "this is car ;(\n";
}
}
class big_car extends car {
function __construct(){}
function whatisit() {
echo "this is big car ;) \n";
}
}
class small_car extends car {
function __construct(){}
function whatisit() {
echo "this is small car ;) \n";
}
}
nên mục tiêu là để sử dụng nó theo cách này:
$mycar = new car('big');
$mycar->whatisit(); // i want it to say that it's big
Tôi đoán rất nhiều mà cách xấu của nó và nó không thể làm việc theo cách này nhưng có lẽ đó là một thủ thuật?
PS :: Tôi biết tôi có thể sử dụng phương pháp tĩnh đặc biệt cho điều đó nhưng ...
Constructors không thể trở về giá trị trong PHP; bạn sẽ cần một phương pháp khác. – NullUserException
@kitty được upvoted cho nick + avatar của bạn. – moonwave99
Bạn cần thêm giao diện "ô tô" và nhà máy "ô tô" - cố gắng làm cả hai cùng nhau là xấu và khó. – Xeoncross