php 输出数组内容总是不对

<?php
    $path = $_SERVER['PHP_SELF']; // "/category/algorithm/"
    $strArray = explode("/", $path);
    $len = count($strArray);
    echo $len; // 输出 4
    echo '<br>';
    for ($i = $len - 1; $i >= 0; $i--) {
        echo strArray[$i].'<br>';
    }
?>

这句代码哪里有问题?为什么总是打印出:

A  
r  
t  
s
阅读 2.3k
2 个回答

这还似乎不是一个 Issue ,而是一个 Feature 。

在 PHP 5.5 中新增的一个 Feature 。


<?php
echo 'Array dereferencing: ';
echo [1, 2, 3][0];
echo "\n";

echo 'String dereferencing: ';
echo 'PHP'[0];
echo "\n";
?>

以上例程会输出:

Array dereferencing: 1
String dereferencing: P


一开始我觉得是这这里缺少 $ 符号,被 php 引擎当作字符串来进行处理,因为在处理数组键时在旧版php中会有这中情况,只有这样可以说通,但是经过一些测试后,我更想知道你是怎么做到的输出 Arts
图片.png

我以为是低版本 PHP 语法支持的问题,我专门去找了一些在线运行 php 的网站,最低支持到 php 5.3 ,告诉我语法错误,我想着 5.2 到 5.3 变化比较大,没准在这里面有什么问题,我打开 php for windows 下载页面找到了比较旧的一个版本 php 5.2 ,也是告诉我语法错误,后来我又去 PHP 博物馆 里面找了 php5 的第一个 win 版本,5.0.0 ,但是也是语法错误,最后,我从 php 4 中找到了第一个支持 win 的版本,php 4.4.6 ,也是语法错误……。

图片.png

`

$strArray = explode("/", $path);
$len = count($strArray);
for ($i = 0; $i <= $len-1; $i++) {
  echo $strArray[$i].'<br>';
}`
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题