J'utilise un hack ge_called_class
pour permettre la liaison statique tardive dans php version 5.2 (trouvé here).get_called_class pirater ne fonctionne pas avec eval-code
je suit dans mon code:
# db_record.php
$ac = "ForumThread";
$objects = $ac::find("all");
Cela ne fonctionnera pas en php 5.2 pour une raison quelconque, j'ai donc fait cela:
# db_record.php
$ac = "ForumThread";
eval("\$objects = {$ac}::find('all');");
Ce d'autre part ne sera pas fonctionne avec la fonction get_called_class
. J'obtiens une erreur que la fonction file
ne peut pas lire la section evaled du code.
Je suis entièrement d'accord qu'il ne devrait pas être nécessaire d'utiliser 'eval' mais il arrive que cela fonctionne sur ma propre boîte avec PHP 5.3, mais pas sur le serveur avec 5.2. Son exécution déclenchera cette erreur: Parse error: syntax error, T_PAAMAYIM_NEKUDOTAYIM inattendue /home/virtual/atanea.dk/vendor/framework/lib/db_record.php en ligne 89 Erreur fatale: Appel à une assign fonction membre() sur un non-objet dans /home/virtual/atanea.dk/vendor/framework/lib/action_view.php sur la ligne 87' – Ekampp
Et pourquoi je n'utilise pas 5.3 est parce que mon hébergeur ne supporte pas encore avec l'argument que c'est encore instable. Donc je suis obligé de faire tous les hacks. – Ekampp
Toujours instable? Il a été sorti pendant un an ce mois-ci. Votre hôte en est plein. En ce qui concerne l'erreur, avez-vous essayé d'utiliser call_user_func? 'call_user_func (array ($ ac, 'find'), 'all')' * devrait * appeler la méthode statique 'find' pour le nom de classe contenu dans' $ ac' avec le paramètre '' all ''. (Cela a été intégré dans ma réponse.) – Charles