[ Foro de PHP ]

explicaciones poo en codigo...

08-Aug-2014 13:39
Invitado (yadir85)
1 Respuestas

hola buen dia.
profesor queria preguntarte acerca de un fragmento de codigo que encontre en un desarrollo php en la red y del cual tengo dudas respecto a los conceptos de POO que en el se muestran:
el script es el siguiente:

<?php
   include 'php/data.php'; // en data.php se tiene la inclusion del archivo conn.php para la conexion a la bd.

$textos = array();
$sql = "SELECT referencia, texto_es, texto_".$_SESSION["AM_idioma"]." as texto FROM textos WHERE seccion = 'inicio' ";
$rst = @mysql_query($sql);
while ($row = @mysql_fetch_object($rst))
{
$aux = $row->texto;
$salir = true;
for($i = 0; $i < strlen($aux) && $salir; $i++)
{
if( $aux[$i] <> "" && $aux[$i] <> " " && !ereg("\r",$aux[$i]) && !ereg("\r",$aux[$i]))
$salir = false;
}

if($salir)
$textos[$row->referencia] = ($row->texto_es);
else
$textos[$row->referencia] = ($row->texto);
}



mis dudas son
al hacer la asignacion:
$aux = $row->texto;
porque puedo hacer la asignacion $row->texto; si en el script no se ha definido ninguna clase ni ninguna instancia almacenada en la variabe $row-, puesto que yo entenderia segun mis conceptos de POO que con $row->texto; estoy accediendo a una propiedad o variable "texto" la cual si observas es un alias dentro de la consulta para el campo que nos da el idioma, entonces como es que puede hacerse esto?
,  como sé? que es propiedad y que es metodo  e instancia de clase? donde se ha definido la instancia $row, acaso es debido al resultado de la funcion: mysql_fetch_object  ??

que crees tu que este haciendo la condicion:

if( $aux[$i] <> "" && $aux[$i] <> " " && !ereg("\r",$aux[$i]) && !ereg("\r",$aux[$i]))

gracias de antemano por toda la explicacion y orientacion que puedas brindarme


09-Aug-2014 01:01
Nacho Cabanes (+84)

Efectivamente, se debe al "fetch_object", que recibe los datos en forma de objeto, mientras que con un "fetch_array" deberías acceder en forma de array, con $aux = $row["texto"];

Ese "if" (tan repetitivo) comprueba si $aux[$i] no es una cadena vacía (cosa que nunca debería ocurrir, porque es un carácter), no es un espacio y no contiene "\r" (dos veces y de una forma algo rebuscada):

http://php.net//manual/es/function.ereg.php








(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)