J'ai une classe qui ressemble à ceci:PHP Les fonctions statiques ne fonctionnent pas lorsque le répertoire change?
utils/Result.php
<?php
class Result
{
public static function ok()
{
echo "OK";
}
}
Si je crée le script suivant
./sandbox.php
<?php
require_once("utils/Result.php");
print_r(Result::ok());
Et exécutez-le avec php sandbox.php
cela fonctionne très bien. Mais si je fais ce qui suit: cd test && php ../sandbox.php
il me donne l'erreur suivante
PHP Fatal error: Call to undefined method Result::ok() in /mnt/hgfs/leapback/sandbox.php on line 5
maintenant, se rendre compte que l'require semble fonctionner. Si j'ajoute une propriété à la classe Result et que j'utilise print_r sur une instance de celle-ci, elle semble correcte. Mais les méthodes statiques disparaissent. Je suis très confus. Je cours PHP 5.2.6.
Si vous remplacez votre instruction require_once par 'require_once dirname (FILE). '/ utils/Result.php'' - Que se passe-t-il? – jason
Euh, damnit, le formatage des commentaires ... qui est censé être souligné underscore soulignement FILE soulignement – jason
Que se passe-t-il si vous supprimez le "public static"? – inakiabt