remove etiquetas php

remove - etiquetas php en html



¿Qué significa=& significa en PHP? (3)

Considerar:

$smarty =& SESmarty::getInstance();

¿Qué es el & para?


En PHP 4, de alguna manera (torpemente) asocia dos variables.

$j = ''original''; $i =& $j; $i = ''modified''; echo $j; // The output is ''modified''

Igualmente...

$j = ''original''; $i =& $j; $j = ''modified''; echo $i; // The output is ''modified''

Algo de esto se hizo un poco menos desagradable cuando se trata de objetos en PHP 5 , pero creo que el corazón es el mismo, por lo que estos ejemplos deberían seguir siendo válidos.


Pasa por referencia. Lo que significa que no creará una copia del valor pasado.

Vea: http://php.net/manual/en/language.references.php (vea la Respuesta de Adán)

Por lo general, si pasas algo como esto:

$a = 5; $b = $a; $b = 3; echo $a; // 5 echo $b; // 3

La variable original ( $a ) no se modificará si cambia la segunda variable ( $b ). Si pasas por referencia:

$a = 5; $b =& $a; $b = 3; echo $a; // 3 echo $b; // 3

El original también se cambia.

Lo cual es inútil cuando se pasan objetos, porque se pasarán por referencia de forma predeterminada.


http://php.net/manual/en/language.references.php se utilizan para las variables de alias y fueron necesarias para utilizar el sistema de objetos antiguo de manera eficiente.

En PHP 4, los objetos se comportaron como cualquier otro tipo de valor, es decir, la asignación crearía una copia del objeto. Si quería evitar esto, tenía que usar una referencia como en su código de ejemplo.

Con PHP 5 , las variables de objeto ya no contienen el objeto en sí, sino que un identificador (identificador de objeto AKA) y una asignación solo copiarán el identificador. Usar una referencia ya no es necesario.