脚本适用于PHP 5.4.16,但不适用于PHP 5.3.3.错误代码在哪里


Script works with PHP 5.4.16, but not PHP 5.3.3... where is the faulty code?

我是php的初学者。。。我只是想创造这个。。。使用php的动态索引/document_display脚本。。。然而,我想做的事情对这个问题并不重要。问题是……当我的脚本托管在带有php 5.4.16的WAMP服务器上时,它正是我想要做的……但当上传到带有php 5.3.3的LAMP服务器时,我得到了错误

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

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

有人能告诉我以下代码是如何导致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";
        }
    }
}

?>

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

问题:

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";
}