Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks y PHP orientado a objetos (http://www.forosdelweb.com/f68/)
-   -   Referencias en la migración PHP4 - PHP5 (http://www.forosdelweb.com/f68/referencias-migracion-php4-php5-576538/)

SUSMO 16/04/2008 08:38

Referencias en la migración PHP4 - PHP5
 
Hola a todos,

Estoy hecha un lío, justo he empezado en el mundo de php4 y ya tengo que migrar una aplicación a php5. El caso es que esta migración me está dando muchos problemas y me surgen muchas dudas. Una de mis batallas son las referencias y mi pregunta concreta es la siguiente.

Si tengo la siguiente linea de código en php4:

class2 = & class1;

En php5 las asignaciones de las clases son por referencias entonces si en la migración hago:

class2 = class1;

¿Son equivalentes? Puedo dejar la línea de php4 y seguirá funcionando?
En el caso de ser variables en lugar de objetos también la asignación en php5 es por referencia o como en php4 sigue siendo por copia?

Muchas gracias por la ayuda.

GatorV 16/04/2008 09:17

Re: Referencias en la migración PHP4 - PHP5
 
Hola SUSMO,

Revisa este link: http://www.php.net/manual/es/faq.migration5.php

Adicionalmente te comento que es mejor que dejes todo como:
Código PHP:

$class2 $class1

Eso te servirá para asignar el mismo objeto a $class2, ahora que si quieres copiarlo deberás usar clone:
Código PHP:

$class2 = clone $class1

Saludos.

SUSMO 16/04/2008 09:26

Re: Referencias en la migración PHP4 - PHP5
 
Gracias por la ayuda y por el link GatorV

enriqueplace 17/04/2008 08:51

Re: Referencias en la migración PHP4 - PHP5
 
A pesar que el manual no sustituye lo que digamos ;-), complemento lo que dice GatorV con el siguiente recordatorio (a veces no queda muy claro):

"En PHP5 los objetos se pasan por referencia siempre, no así las variables comunes, mientras que en PHP4 siempre es por valor (variables y objetos), y para hacerlo por referencia hay que explicitarlo con un &"


Reafirmando conceptos ;-)


La zona horaria es GMT -6. Ahora son las 08:21.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.