PHP 'string-as-array-access'功能和phphseclib的奇怪错误



我在服务器上使用PHP 5.3,发现了一个奇怪的错误-我需要删除字符串中的第一个符号,并且我已经使用了

<?php
   $str[0] = ''; //empty string
?>

是的,我知道substr()之类的,但在文档中我看到了

字符串中的字符可以通过指定使用方括号,如$str[42]中所示。将字符串想象为数组用于此目的的字符数。

一切都很好,只是在调试器中我看到字符串的第一个元素并没有被删除,而是被空格替换了,这不是问题。

但在下一步中,我将在$SSH->exec()中的phpseclib库中使用此字符串。

出现了问题——脚本运行速度非常慢,exec()不返回任何内容(也没有错误)。

当我使用substr($str, 1)时,一切都很好——快速、正确的工作。

我找不到答案——那是什么?PHP是否通过将第一个符号替换为零来破坏字符串?

当您编写$str[0] = '';时,您"认为"您正在删除第一个字符,但实际上您仍然将第一个字符设置为空白('')字符。如图所示。。

http://codepad.org/rYwIqd1u.

相关内容

最新更新