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