chiarimento singleton e variabile static - php4

buongiorno a tutti

ho due classi differenti che utilizzano il singleton

una per la connessione una che mi gestisce gli include dinamici via get

da sole funzionano correttamente insieme no .. e come se la varibile statica getIstance che utilizzo per realizzare il singleton risultasse globale , io credevo fosse incapusalata solo nella classe relativa

istanzio gli oggetti in questo modo

$conn =& db_connection::getIstance($parametri_db);

$pag_select=&router::getIstance(ADMIN_INTRANET_INCLUDE_FILE,"welcome");

i metodi relativi sono:

function getIstance($parametri_db=array())

{

static $thisInstance;

function getIstance($directory="",$inc="")

{

static $thisInstance;

nel modo su indicato da errore .devo cambiare la variabile statica in modo che non siano uguali

tipo

static $thisInstance_r;

vi rsulta?

qualche delucidazione?

grazie anticipatamente

inviato 8 anni fa
dyd666
X 0 X

In PHP4 i singleton si scrivono cos:

http://www.phpnews.it/forum/index.php?topic=3105.msg19961#msg19961

:bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Se non ricordo male, in php4 l'incapsulamento non completo.

risposto 8 anni fa
Marco Grazia
X 0 X

si gianni quel post era mio ...

ed io cosi ho fatto....

la questione che la variabile statica nella classe

non una variabile di classe

ovvero la static $thisInstance;

class db{

.....

function getIstance($parametri_db=array())

{

static $thisInstance;

....

risulta la stessa di

class db{

.....

function getIstance(param)

{

static $thisInstance;

o almeno a me funge in questa maniera....

chiedevo quindi una conferma di questo comportamento

risposto 8 anni fa
dyd666
X 0 X

Prova a dare un'occhiata a quanto scritto da qui in poi

http://www.php.net/manual/en/language.variables.scope.php#50016

risposto 8 anni fa
Marco Grazia
X 0 X

Qui dice che le variabili statiche esistono solo all'interno della funzione in cui sono definite:

http://www.php.net/manual/en/language.variables.scope.php#language.variables.scope.static

:bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

scoperto il perche dell'incasinamento

stava tutto nella classe router che si occupa di recuperare il valore qrystring e includere la pagina relativa

operavo l'include della pagina suddetta nella classe e il codice dell'include poi giustamente alterava quello che io pensavo fossero gli scope delle var

thanks dell'aiuto ;-)

risposto 8 anni fa
dyd666
X 0 X

Puoi controllare se questa versione del singleton per PHP4 funziona?

http://www.phpnews.it/forum/index.php?topic=3105.msg21057#msg21057

:bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

provato e sembra funzionare correttamente

risposto 8 anni fa
dyd666
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda