我試圖得到一個基於HTML的遞歸目錄列表基於代碼在這裏:「嚴格標準:只有變量應該按引用傳遞」錯誤
http://webdevel.blogspot.in/2008/06/recursive-directory-listing-php.html
代碼運行良好,但它拋出一些錯誤:
嚴格的標準:只有變量應該通過引用 C下通過:\ XAMPP \ htdocs中\ directory5.php在線路34上
規格嚴格S:只有變量應該通過引用 C下通過:\ XAMPP \ htdocs中\ directory5.php在線路32
嚴格的標準:只有變量應該通過引用 C下通過:\ XAMPP \ htdocs中\ directory5.php在線路34上
下面是代碼的摘錄:
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";
}
所以它真的就像是把事物之外的東西簡單......可以這麼說:對 – 2014-02-27 23:10:05
@JamieHutber好看多了,是的。我可以確認解決方案建議在PHP 5.3.27上運行。 – crmpicco 2014-05-15 10:47:42
@JamieHutber稍微牽涉一點。array_pop的原型是 mixed array_pop(array&$ array) 請注意參數中的&符號。這意味着數組輸入參數通過引用而不是按值傳遞。輸入數組縮短了一個元素,即返回的元素,這是數組中的最後一個元素,它將從輸入數組中移除。修改輸入參數值的唯一方法是通過引用傳遞它。原始代碼的表達式不能修改其值,因爲它沒有具有可引用值的命名內存位置。 – Jim 2015-04-10 18:15:42