タイトルがどうあるべきかわかりませんが、コードはそれをよりよく説明するはずです:
class Group {
private $number = 20;
public function __toString() {
return "$this->number";
}
}
$number = new Group();
echo $number, PHP_EOL;
echo ++ $number, PHP_EOL;
echo PHP_EOL;
$number = "20";
echo $number, PHP_EOL;
echo ++ $number, PHP_EOL;
echo PHP_EOL;
$number = 20;
echo $number, PHP_EOL;
echo ++ $number, PHP_EOL;
出力:
20
20 <--- Expected 21
20
21
20
21
なぜ私が20
代わりに得たの21
ですか?それでも、以下のコードは機能します。
$i = null ;
echo ++$i ; // output 1
Group
を実装するオブジェクトであることはわかって__toString
い++
ます。__toString
throw an error