PHP'的奇怪bug;字符串作为数组访问';feature和phseclib
我在服务器上使用PHP5.3,发现了一个奇怪的错误- 我需要删除字符串中的第一个符号,我已经使用了PHP'的奇怪bug;字符串作为数组访问';feature和phseclib,php,string,Php,String,我在服务器上使用PHP5.3,发现了一个奇怪的错误- 我需要删除字符串中的第一个符号,我已经使用了 <?php $str[0] = ''; //empty string ?> 是的,我知道substr()之类的东西,但在文档中我看到了 字符串中的字符可以通过指定 使用字符串后所需字符的从零开始的偏移量 方括号,如$str[42]中所示。将字符串视为数组 用于此目的的字符集 一切正常,除了在调试器中我看到字符串的第一个元素并没有被删除,但被空格替换了,这不是问题 但在下一步
<?php
$str[0] = ''; //empty string
?>
是的,我知道substr()之类的东西,但在文档中我看到了
字符串中的字符可以通过指定
使用字符串后所需字符的从零开始的偏移量
方括号,如$str[42]中所示。将字符串视为数组
用于此目的的字符集
一切正常,除了在调试器中我看到字符串的第一个元素并没有被删除,但被空格替换了,这不是问题
但在下一步中,我将在phpseclib库中的$SSH->exec()中使用这个字符串
出现了一些问题—脚本运行非常慢,exec()不返回任何内容(也没有错误)
当我使用substr($str,1)时,一切正常-快速、正确的工作
我找不到答案-那是什么?PHP是否通过将第一个符号替换为零来中断字符串?当您编写
$str[0]=''
您“认为”您正在删除第一个字符,但实际上您仍然将第一个字符设置为空白(“”)字符。如图所示
.''(空字符串)不是字符。这根本不应该起作用,ever.PHP没有显示任何错误。我知道我的代码不正确,我只是尝试在本例中使用该功能。
unset($str[0])代码>也不起作用。@d请尝试只为它指定一个简单的“
”。你做了一个任务,你不删除它。仅仅因为你看不到它并不意味着它不再存在,正如你所知。你可以只修剪字符串或者只是子字符串。我只是说,你不应该尝试将错误类型的元素放入“字符数组”中,因为它不会按你期望的方式工作,在这种情况下,它真的应该崩溃。无法将方形销钉装入圆孔中。只需使用$str=substr($str,1)代码>如果你想删掉前面的一个字符。谢谢你的提醒,我在手机上,不知怎么错过了。