Próbuję uzyskać katalogu rekurencyjny HTML oparte na wykazie na podstawie kod tutaj:„Strict Standards: Tylko zmienne powinny być przekazywane przez referencję” Błąd
http://webdevel.blogspot.in/2008/06/recursive-directory-listing-php.html
Kod działa poprawnie, ale to rzuca pewne błędy :
surowe normy: Tylko zmienne powinny być przekazywane przez referencję w C: \ xampp \ htdocs \ directory5.php na linii 34
Strict Standardowy s: Tylko zmienne powinny być przekazywane przez referencję w C: \ xampp \ htdocs \ directory5.php na linii 32
surowe normy: Tylko zmienne powinny być przekazywane przez referencję w C: \ xampp \ htdocs \ directory5.php na linii 34
Poniżej znajduje się fragment kodu:
else
{
// the extension is after the last "."
$extension = strtolower(array_pop(explode(".", $value))); //Line 32
// the file name is before the last "."
$fileName = array_shift(explode(".", $value)); //Line 34
// continue to next item if not one of the desired file types
if(!in_array("*", $fileTypes) && !in_array($extension, $fileTypes)) continue;
// add the list item
$results[] = "<li class=\"file $extension\"><a href=\"".str_replace("\\", "/", $directory)."/$value\">".$displayName($fileName, $extension)."</a></li>\n";
}
więc jej naprawdę tak proste, jak oddanie rzeczy poza rzeczy ... Że tak powiem: P –
@JamieHutber Prawie tak. Potwierdzam rozwiązanie sugerowane prace na PHP 5.3.27. – crmpicco
@JamieHutber Nieco bardziej zaangażowany.Prototyp dla array_pop to mixed array_pop (array & $ array) Zwróć uwagę na znak ampersand w parametrze. Oznacza to, że parametr wejściowy tablicy przekazywany jest przez odniesienie, a nie przez wartość. Tablica wejściowa jest skracana przez jeden element, mianowicie zwracany element, ostatni element tablicy, który jest usuwany z tablicy wejściowej. Jedynym sposobem modyfikacji wartości argumentu wejściowego jest przekazanie go przez odniesienie. Wyrażenie, w którym oryginalny kod nie może mieć zmodyfikowanej wartości, ponieważ nie ma nazwanej lokalizacji pamięci z wartością, do której można się odwoływać. – Jim