Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php访问数组的奇怪行为_Php_Arrays - Fatal编程技术网

php访问数组的奇怪行为

php访问数组的奇怪行为,php,arrays,Php,Arrays,我有一个函数返回一个数组,叫做curPageURL。在本地apache上,我访问页面的返回值如下:$pageUrl=explode('?',curPageURL())[0]它工作得很好。但在现场,它没有起作用。我花了很多时间才弄明白,访问数组时出错了 这解决了问题: $pageUrl = explode('?',curPageURL()); $pageURL = pageURL[0]; function curPageURL() { $pageURL = 'http';

我有一个函数返回一个数组,叫做curPageURL。在本地apache上,我访问页面的返回值如下:
$pageUrl=explode('?',curPageURL())[0]它工作得很好。但在现场,它没有起作用。我花了很多时间才弄明白,访问数组时出错了

这解决了问题:

$pageUrl = explode('?',curPageURL());
$pageURL = pageURL[0];


function curPageURL() {
        $pageURL = 'http';
        if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
        $pageURL .= "://";
        if ($_SERVER["SERVER_PORT"] != "80") {
            $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
        } else {
            $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
        }
        return $pageURL;
    }
  • 有人能解释为什么吗

  • 是否禁止通过函数的返回值直接访问数组索引?如果是这样,为什么它在我的本地主机上工作,而在我的实时主机上却不工作

  • $pageUrl=explode(“?”,curPageURL())[0]仅在php版本>=5.4时可用

    从PHP5.4开始,可以对 直接调用函数或方法。以前,只能使用 临时变量


    您的联机主机低于该版本。

    您需要
    current()
    ,直到您拥有支持该版本的PHP5.4


    它应该在5.4中工作是的,我的主人在PHP5.3中-这解释了一切,浪费了一个小时的时间:/谢谢
    $pageUrl = current(explode('?',curPageURL()));