PHP utilise des méthodes statiques dans un contexte d'objet

J'ai le code suivant (comme, pour de vrai, c'est mon vrai code) :

<?php
class Foobar
{
  public static function foo()
  {
    exit('foo');
  }
}

Quand je lance $foobar = new FooBar; $foobar->foo() il affiche foo.

Pourquoi PHP essayez d'utiliser une méthode statique dans un contexte de l'objet ? Est-il un moyen pour éviter cela ?


Ok les gars, vous n'obtenez pas mon problème : je connais les différences entre statiques et non statiques les méthodes et la façon de les appeler. C'est mon point de l'ensemble, si je l'appelle $foobar->foo()pourquoi ne PHP tente d'exécuter une méthode statique ?


Note : j'utilise PHP 5.4.4, les rapports d'erreurs à E_ALL.

source d'informationauteur Maxime Fabre