J'ai un problème en php ... Je ne comprends pas complètement comment l'ensemble de la chose require() fonctionne. Ma compréhension est qu'il prend les variables membres de la classe actuelle et les rend globales dans le fichier requis. Si tel est le cas, alors pourquoi ne prend-il pas aussi les variables membres de la classe de base et les rend globales?PHP Exiger Global Scope
baseclass.php:
class BaseClass {
var $user;
}
myclass.php:
class MyClass extends BaseClass {
function doSomething() {
require "page.php"
}
}
page.php:
$this->user // <- this is out of scope?
A la réflexion, je supprime ma remarque "pas parfait". Bien que l'on puisse avancer que si vos méthodes sont si grandes que vous avez besoin de les mettre dans des fichiers externes, vous avez un problème de conception ... Mais ce n'est pas pertinent à la question. –
très intéressant, je peux faire un print_r sur l'objet (avec succès) en dehors de l'exiger mais si je le fais à l'intérieur je n'obtiens rien. – DaveC
@DaveC a 'print_r ($ this);' fonctionne bien pour moi à partir de l'include. Pouvez-vous montrer le code exact de votre fichier inclus? –