Exceptions à strict_types
<?php declare(strict_types = 1);
class x {
function __toString() : string {
return "abc";
}
}
$x = new x;
print $x . " and $x
";
print $x;
echo $x;
echo PHP_EOL;
print implode(', ', [$x, $x]);
print implode($x, [1, 2]);
?>
strict_types ne s’applique pas aux opérateurs PHP, seulement aux structures typées.
Ici, la concaténation et l’interpolation appellent toutes deux __toString(), mais pas foo().
Comme vous pouvez le voir, print() et echo() sont également sûrs, tandis que implode() ne l’est pas : en réalité, il n’est pas sûr pour le premier argument, mais reste acceptable avec les éléments du tableau en second argument.
See Also
- declare
- strict types exceptions [Try me]
PHP Features
Last updated: 11 October 2026