如果您还不熟悉,这对于上课和练习 OOP 技术来说可能是一个很好的情况。这可能不适合您的情况,并且可能有更简单的方法,但我想我无论如何都会为了知识而展示这种方式!
基本上,定义一个在创建时需要 a 的类$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]);
}
希望这会在您的脑海中植入一些想法!:-)
免责声明:我尚未测试此代码,它可能包含错误。