0

我是 php 的初学者,并且...我只是想创建这个...使用 php 的动态索引/document_display 脚本...但是,我尝试做的事情对这个问题并不重要。问题是……我的脚本完全符合我的要求,当托管在带有 php 5.4.16 的 WAMP 服务器上时……但是当使用 php 5.3.3 上传到 LAMP 服务器时,我得到了错误

致命错误:无法在第 34 行的 /users/clentz/testphpindex.php 的写入上下文中使用函数返回值

我需要它在这个灯服务器上工作。

谁能告诉我以下代码导致 php 5.3.3 解释器出错的原因是什么?

<?php

$courses_directory = "./Courses";
$courses_array = scandir($courses_directory);

if (empty($_SERVER['QUERY_STRING']))
{
    include 'Misc/common_components/headers/index_header.html';

    echo "\r\n\t<h1>Enrolled Courses</h1>";

    for ($uwmi_loop_var = 2; isset($courses_array[$uwmi_loop_var]); $uwmi_loop_var++)
    {
        if ($uwmi_loop_var == 2)
        {
            echo "\r\n\t<ul>";
        }

        if (isset($courses_array[$uwmi_loop_var]))
        {
            echo "\r\n\t\t<li>" . '<a href="?' . $courses_array[$uwmi_loop_var] . '">' . $courses_array[$uwmi_loop_var] . '</a></li>';
        }

        if (!isset($courses_array[($uwmi_loop_var + 1)]))
        {
            echo "\r\n\t</ul>\r\n";
        }
    }

    include 'Misc/common_components/footer.html';
}

else if (!empty($_SERVER['QUERY_STRING']))
{
    for ($uwmi_loop_var = 2; isset($courses_array[$uwmi_loop_var]); $uwmi_loop_var++)
    {
        if (explode("&",$_SERVER['QUERY_STRING'])[0] == rawurlencode($courses_array[$uwmi_loop_var]))
        {
            include "./Courses/" . $courses_array[$uwmi_loop_var] . "/index.php";
        }
    }
}



?>

如果有帮助,您可以在以下位置以更具视觉吸引力的格式查看代码:以视觉吸引力格式显示代码的图片

4

1 回答 1

6

问题 :

explode("&",$_SERVER['QUERY_STRING'])[0] 

在 PHP 5.3.* 版本中不支持这种类型的代码。

对于 5.3.* 版本,您可以这样做

$query_string = $_SERVER['QUERY_STRING'];
$arr = explode("&",$query_string);
if ($arr[0] == rawurlencode($courses_array[$uwmi_loop_var]))
{
   include "./Courses/" . $courses_array[$uwmi_loop_var] . "/index.php";
}
于 2013-08-24T11:14:13.897 回答