Tenir compte de l'extrait de PHP suivant:Est-ce possible en PHP?
<?php
class Is
{
function __get($key)
{
$class = __CLASS__ . '_' . $key;
if (class_exists($class) === true)
{
return $this->$key = new $class();
}
return false;
}
function Domain($string)
{
if (preg_match('~^[0-9a-z\-]{1,63}\.[a-z]{2,6}$~i', $string) > 0)
{
return true;
}
return false;
}
}
class Is_Domain
{
function Available($domain)
{
if (gethostbynamel($domain) !== false)
{
return true;
}
return false;
}
}
$Is = new Is();
var_dump($Is->Domain('google.com')); // true
var_dump($Is->Domain->Available('google.com')); // false
?>
Est-il possible d'appeler la méthode disponible() comme celui-ci (et revenir encore seul vrai ou faux si la méthode disponible est pas appelé)?
var_dump($Is->Domain('google.com')->Available()); // false
Si oui, comment?
EDIT: Est-ce que cela ferait l'affaire?
class Is
{
function __get($key)
{
// same as before
}
function Domain($string)
{
if (preg_match('~^[0-9a-z\-]{1,63}\.[a-z]{2,6}$~i', $string) > 0)
{
return (bool) $this->Domain;
}
return false;
}
}
class Is_Domain
{
function __toString()
{
return true;
}
function Available($domain)
{
if (gethostbynamel($domain) !== false)
{
return true;
}
return false;
}
}
Merci à l'avance!
PS: Cet extrait est tronqué, ne vous attendez donc pas à ce qu'il soit très intuitif.
+1, C'est ce que je pensais, je pensais aussi renvoyer le domaine objet et si aucune méthode du domaine n'était appelée alors le __toString entrerait en action et retournerait vrai, sinon la chaîne n'était pas un domaine qu'elle retournerait simplement faux. Pensez-vous que c'est une bonne idée? –
S'il vous plaît jeter un oeil à mon édition. –
@eyze: Non. Je viens de tester et les objets quand transtypés en booléens sont toujours vrais, __toString() n'est pas appelé –