2010-10-06 5 views
2

Si une méthode statique renvoie un objet, puis-je obtenir en une ligne l'un des attributs d'objet? Quelque chose comme ça, mais en une seule ligne:Valeur de retour PHP

$obj = Parser::GetFirstItem(); 
$strTitle = $obj->Title; 

Répondre

3

Avez-vous réellement essayé?

$strTitle = Parser::GetFirstItem()->Title; 

Cela devrait fonctionner, à condition que vous utilisiez PHP5 et pas encore coincé sur PHP4.

Here's a link to an article about it.

3

Bien sûr. Essayez-le:

$strTitle = Parser::GetFirstItem()->Title; 

Vous ne savez pas exactement quand cela a été introduit. 5? 5.1? 5.2? Je vais devoir vérifier.

Mise à jour: Semble avoir été une fonctionnalité de PHP 5 depuis le début.

+0

$ strTitle = ... non $ obj. ;) – Spudley

+0

@Spudley bien sûr, à la vôtre. –

0

Votre méthode GetFirstItem doit renvoyer un objet. Seuls les méthodes virtuelles (pas statiques) peuvent le faire:

return $this; 
+0

'$ this' ne fonctionnera pas dans un contexte statique –

+0

oui. lis mes changements. – pltvs

+0

Utiliser 'return self;' dans une fonction statique retourne un 'E_NOTICE' qui' self' est une constante indéfinie, suppose que vous vouliez dire '' self'', et retourne une chaîne. (Note: PHP 5.3.2). Si vous voulez un objet de la classe qui a la fonction statique, alors vous devriez utiliser 'return new self();' – Aether