[SOLUCIONADO] Devolver contenido legible desde objeto en php

Iniciado por fleshworm, Junio 21, 2015, 05:18:55 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Junio 21, 2015, 05:18:55 PM Ultima modificación: Junio 23, 2015, 02:00:37 PM por blackdrake
Pregunto es possible devolver contenido legible por ejemplo un foreach() bucle desde un objeto (clase) en php

Código: php

<?php

class miniature_news{

var $cpt = array();

public function __construct($end, $postperpag, $totalpost){
  $this->cpt["totalpages"] = ceil($totalpost / $postperpage);
}

public function grab_entries(){
  if($dir = opendir("dir/path/")){
   while(false != ($data = readdir($dir))){
    $file[] = $data;
    rsort($file);
   }
   closedir($dir);
   return($file);
  }
}

public function display_post(){
  $totalpost = $this->grab_entrie("dir/path/");
  foreach($totalpost as $element){
   $data = file("dir/path/".$element);
   $post = "<h2>{$data[0]}</h2>";
   unset($data);
  }
return($post);
}

}

$obj = new miniature_news($val1, $val2, $val3);

echo $obj->display_post(); // Desde aqui me devuelve solo una entrada!

?>



Gallery @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta -> No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Note: Im a Oracle enthusiast (Java, Javascript) with some experience under a Perl implementation platform or PHP

Mmm no he mirado mucho tu código (estoy desde el móvil), pero encuentro aquí un fallo:

Código: php
 
$totalpost = $this->grab_entrie("dir/path/");
  foreach($totalpost as $element){
   $data = file("dir/path/".$element);
   $post = "<h2>{$data[0]}</h2>";
   unset($data);
  }
return($post);


$post siempre devolverá el valor de la última posición del foreach.

Esto es debido a que la variable $post vale "<h2>{$data[0]}</h2>"; por tanto, al igualarlo y no concatenarlo ni nada por el estilo, lo que devuelve es una única entrada.

Lo que debes hacer es guardarlo como array (y en diferentes posiciones) o bien,  concatenar los anteriores valores $post .= "<h2>{$data[0]}</h2>";, esto último es un poco chapuzas, pero puede servirte dependiendo de como utilices tu aplicación.


Prueba y me cuentas :D

Saludos.



Gracias por la sugerencia men algo similar estaba intentando, logre resolverlo con encapsulamiento. props!


Gallery @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta -> No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Note: Im a Oracle enthusiast (Java, Javascript) with some experience under a Perl implementation platform or PHP