Buongiorno a tutti,
Vi è un modo in PHP di ridefinire una variabile stringa come un array (come con un puntatore in C)
affinchè entrambe le variabili condividano la stessa area di memoria ?
Vi ringrazio.
Buongiorno a tutti,
Vi è un modo in PHP di ridefinire una variabile stringa come un array (come con un puntatore in C)
affinchè entrambe le variabili condividano la stessa area di memoria ?
Vi ringrazio.
Codice PHP:
$foo = "foo";
var_dump($foo);
$bar = ["hello","world"];
var_dump($bar);
$foo = $bar;
var_dump($foo);
$foo[0] = "Goodmorning";
var_dump($foo);
var_dump($bar);
IP-PBX management: http://www.easypbx.it
Old account: 2126 messages
Oldest account: 3559 messages
Ti ringrazio della risposta,
Tuttavia io intendevo una cosa diversa, nel senso che desideravo che le due variabili condividessero la stessa area di memoria non che avessero contenuto identico.
Infatti l'istruzione $foo = $bar; copia il contenuto e le caratteristiche di array da $bar a $foo, ma sono due aree di memoria distinte, tant'è che quando tu metti Goodmorning in foo[0] $bar continua ad avere il vecchio contenuto.
Cosa diversa è invece un puntatore che fa si che l'area di memoria sia unica e tutte le variazioni sono riportate su tutte le variabili di riferimento.
Codice PHP:
$foo = 'pippo';
$bar = &$foo;
echo $foo . '<br>';
echo $bar . '<br>';
$foo = 'topolino';
echo $foo . '<br>';
echo $bar . '<br>';
$bar = 'pluto';
echo $foo . '<br>';
echo $bar;
Si è che ero rimasto "spiazzato" dalla richiesta di modifica di una variabile "stringa" in un array attraverso l'uso del puntatore... nel senso: "ma perchè vuole farlo?"
cmq Alhazred ha risposto
IP-PBX management: http://www.easypbx.it
Old account: 2126 messages
Oldest account: 3559 messages
Mi spiego meglio.
Ho per esempio una stringa alfanumerica di 5 caratteri, avrei bisogno di ridefinirci sopra un array di 5 elementi di un carattere per poterlo gestire tramite indici, invece che con substr o substr_replace che sono molto lente.
E dover prima convertire la stringa in un array e poi lavorare con l'array rende le operazioni veloci?
Comunque guarda str_split().