這可能是一類的良好局面和實踐OOP技術,如果你還不熟悉。這可能對你的情況並不理想,有可能更簡單的方法,但我想我會以知識的方式無論如何表現出這種方式!
基本上,定義一個在創建時需要$carNumber
的類(使用可選的$color
變量來傳遞)。然後,創建一個方法來改變這種顏色。如果已經有一種顏色,那麼不要改變它,否則就是這樣。
class Car{
public $hasColor = 0;
public $carNumber = 0;
public $color = null;
public function __construct($carNumber, $color = null){
$this->carNumber = $carNumber;
if(is_null($color)){
}else{
$this->color = $color;
}
}
public function alterColor($colorType){
if($this->hasColor === 1){
}else{
$this->color = $colorType;
$this->hasColor = 1;
}
}
}
我們實現類...
include_once("Car.php");
$car1 = new Car(1);
$car2 = new Car(2);
$car3 = new Car(3, "Green");
$car1->alterColor("Red");
$car2->alterColor("Blue");
$car3->alterColor("Brown");
所以$car3
的顏色不應該改變,因爲它已經是綠色!
如果你想要做一個快速的迭代,只是這樣做......
$cars = array($car1, $car2, $car3);
foreach($cars as $car){
$car->alterColor("Blue");
}
這將改變每輛車的顏色爲「藍色」。如果你想使每輛車不同的顏色,你也許可以做這樣的事情(試圖驗證alterColor
將現在叫,但我想它會)...
$cars = array($car1, $car2, $car3);
$colors = array("Blue", "Red", "Green");
for($i=0; $i<count($cars); $i++){
$cars[$i]->alterColor($colors[$i]);
}
希望這植入一些想法你的頭! :-)
聲明:我沒有測試過這段代碼,它可能包含錯誤。
看看這個http://www.w3schools.com/php/php_operators.asp,會幫你開始 – Ahmad
我不明白,你爲什麼要檢查is_car?創建一個帶顏色變量的班級車。在構造函數中保持undef。然後創建一個方法set_color,它將檢查undef。 – user4035
你是新來的PHP,所以不要打擾你的代碼的效率或長度。寫下它來完成它的工作,繼續學習,過一段時間後再回過頭來看看自己是否有想法讓它變得更好。 –