PDA

View Full Version : [PHP] visibilità variabili in un metodo di una classe inclusa


biowep
24-04-2012, 21:30
Ciao,
la situazione è questa

Ho una metodo che richiama una classe. Questa classe contiene un metodo che dichiara della variabili globali. Posso in qualche modo inizializzare queste variabili globali nel medoto chiamante?

class plgUserPHPBBsync extends JPlugin{
public function onUserLogin($j_user, $j_options = array()){
...
$phpbb_root_path = 'forum/';//var 1
$phpEx='php';//var 2
include('forum/includes/auth.php');//chiamo la classe auth
$phpbb_auth=new auth();//dichiaro una istanza
$phpbb_auth->login($j_user['username'], $j_user['password'], $j_options['remember']);//chiamo il metodo login
return true;//login ok
}
}

metodo login della classe auth
function login($username, $password, $autologin=false, $viewonline=1, $admin=0){
global $config, $db, $user, $phpbb_root_path, $phpEx;//alcune variabili global
...


Sembra che le due variabili che inizializzo supra non vengano viste dal metodo login, come mai?

luigi351
25-04-2012, 02:24
ciao,
potresti usare meglio la visibilità delle variabili,prova con public invece che con global.

biowep
25-04-2012, 13:13
ciao,
potresti usare meglio la visibilità delle variabili,prova con public invece che con global.
Non posso modificare il metodo in quanto fa parte del core di phpbb.
Leggendo in giro ho scoperto l'array $GLOBALS
Mi è bastanto dichiarare le variabili in questo modo.
$GLOBALS['nomevar']