色を記述する次の PHP コードがあります。要するに、私は以前に PHP 4 を使用していて、現在は 5.5 に近づこうとしているので、PHP で実際にオブジェクトを使用するのはこれが初めてです。
とにかく、 Color クラスに設定されているデフォルト値に関係していると思われる論理エラーがあります。誰かが私のコンストラクターが機能しない理由、または何が起こっているのか説明してもらえますか?
class Color {
private $red = 1;
private $green = 1;
private $blue = 1;
private $alpha = 1;
public function __toString() { return "rgb(" . $this->red . ", "
. $this->green . ", " . $this->blue . ", " . $this->alpha . ")"; }
}
class RGBColor extends Color {
public function __construct($red, $green, $blue) {
$this->red = $red; $this->green = $green;
$this->blue = $blue; $this->alpha = 1;
}
}
class RGBAColor extends Color {
public function __construct($red, $green, $blue, $alpha) {
$this->red = $red; $this->green = $green;
$this->blue = $blue; $this->alpha = $alpha;
}
public function __toString() { return "rgba(" . $this->red
. ", " . $this->green . ", " . $this->blue . ", " . $this->alpha . ")"; }
}
$c = new Color();
echo "Color: " . $c . "<br>";
$c1 = new RGBColor(0.6, 0.4, 1.0);
echo "RGB Color: " . $c1 . "<br>";
$c2 = new RGBAColor(0.6, 0.4, 1.0, 0.5);
echo "RGBA Color: " . $c2 . "<br>";
次の出力が得られます...
Color: rgb(1, 1, 1, 1)
RGB Color: rgb(1, 1, 1, 1)
RGBA Color: rgba(0.6, 0.4, 1, 0.5)
私はいつ取得する必要があります...
Color: rgb(1, 1, 1, 1)
RGB Color: rgb(0.6, 0.4, 1.0)
RGBA Color: rgba(0.6, 0.4, 1, 0.5)
ありがとう!-コーディ