Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Méthode ou propriété ?

<?php

$object = new X();

$one =     $object->foo();   // X::foo

$two = new $object->foo();   // object Y {}

class X {
    public $foo = Y::class;
    
    function foo() {
        return __METHOD__;
    }
}
class Y {}
  
?>

La première ligne est un simple appel à la méthode foo, sur un objet dont la classe n’est pas montrée ici : si cela fonctionne, il y a une méthode foo() dans cette classe.

La deuxième ligne est un simple accès à la propriété foo, sur un objet dont la classe n’est pas connue (également) : elle possède une propriété appelée foo. Ensuite, le résultat de cette propriété, qui est normalement une chaîne contenant un nom de classe, ou un autre objet, est instancié sans aucun argument.

La nuance est subtile.

See Also

PHP Features

Last updated: 11 October 2026