Type hinting
class Task
{
protected $title;
protected $complete;
public function __construct(string $title,
bool $isComplete = false)
{
$this->title = $title;
$this->complete = $isComplete;
}
public function isComplete(): bool
{
return $this->complete;
}
}
$task = new Task("Go to the store", "false");
var_dump($task->isComplete());
Az eredmény bool(true)
, ami nem meglepő, hiszen a nem nulla hosszúságú karakterláncok logikai értéke igaz, viszont ami melepő, hogy alapértelmezetten nem akad ki az interpreter. Magunknak kell rendelkeznünk arról, hogy declare(strict_types=1);
hogy nehogy ilyen kis BUG forrást vigyünk a rendszerbe...