Mi función funciona fuera de la clase pero no dentro de la clase.

Siento que me estoy perdiendo algo obvio aquí. Tengo una clase de la siguiente manera:

<?php

class files
{
public function getDirectoryList($directory)
{
    // create an array to hold directory list
    $results = array();

    // create a handler for the directory
    $handler = opendir($directory);

    // open directory and walk through the filenames
    while($file = readdir($handler)) 
    {

        // if the file isn't this directory or the parent, add it to the results.
        if($file != "." && $file != "..")
        {
            $results[] = $file;
        }
    }

    // tidy up: close the handler
    closedir($handler);

    //done
    return $results;
}
}

?>

Ahora tengo la clase incluida en otro archivo y estoy haciendo lo siguiente:

$fileListing = new files();
$fileListing->getDirectoryList('education');

No estoy recibiendo ningún resultado de vuelta. Si saco la función de la clase y la pongo en este archivo, puedo obtener resultados haciendo:

$fileListing = getDirectoryList('education');

preguntado el 26 de agosto de 12 a las 17:08

¿Está devolviendo la llamada al método de clase a una variable, como en el segundo ejemplo? -

No hay nada malo en su código, verifique qué var_dump( $fileListing->getDirectoryList('education') ) Te dijo. -

si desea imprimir el resultado, use 'echo $ resultados' en su función; de lo contrario, asigne a la variable, como lo sugiere @JaredFarrish -

¿Ha intentado pasar rutas absolutas en las dos versiones del código, solo para asegurarse de que esto no esté relacionado con rutas relativas? -

Sheesh... Me espacié completamente al asignarlo a una variable. Usando $myfiles = $fileListing->getDirectoryList('education'); trabajó. Simplemente no estaba viendo eso. Gracias Jared y Dirk. -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.