instanceof et If
Posté : 08 août 2006, 10:42
Salut.
Je voudrais avoir un avis sur la question suivante et le code :
Ceci me paraît être normal car PHP doit certainement évaluer dans l'ordre les conditions. D'ailleur j'aurais été très surpris si je n'avais pas eut de message d'erreur concernant l'objet non initialisé.
Par contre si on inverse la condition, le message d'erreur disparaît et le test passe dans le "echo 'Je ne suis pas un objet Test.<br />'".
Quelqu'un pour une petite explication ?
Merci.
Je voudrais avoir un avis sur la question suivante et le code :
<?php
class Test
{
public $unevar;
public function monTest()
{
echo 'Je suis dans monTest()<br />';
}
}
$myvar = null;
if ($myvar->monTest() && $myvar instanceof Test) {
echo 'Je suis bien un objet Test.<br />';
}
else {
echo 'Je ne suis pas un objet Test.<br />';
}
?>
Dans ce cas, le php me retourne bien une erreur qui est la suivante .
Code : Tout sélectionner
Fatal error: Call to a member function monTest() on a non-object in /var/www/html/test/test-instanceof.php on line 14Par contre si on inverse la condition, le message d'erreur disparaît et le test passe dans le "echo 'Je ne suis pas un objet Test.<br />'".
if ($myvar instanceof Test && $myvar->monTest()) {
Je me demande pourquoi l'objet n'est pas évaluer comme n'étant pas créé et qu'il n'y a pas de message d'erreur ?Quelqu'un pour une petite explication ?
Merci.