2个字符串的PHP错误?

时间:2016-04-08 22:03:59

标签: php substring substr

鉴于字符串$s和函数substr(substr($s, 1), -1),您可能希望从正面取一个字符,从背面取一个字符。

如果您运行substr(substr('abc', 1), -1) === 'b',则会获得以下内容。如果您在ab上运行,则会获得b

但是,如果您运行substr(substr($s, -1), 1),则会在2个字符串上获得所需的结果。

在PHP 5.5和7.0中也是如此

1 个答案:

答案 0 :(得分:2)

substr(substr('ab', 1), -1)会发生什么:

  • substr('ab', 1)返回bsubstr('b', -1)返回b。为什么?作为 documented ,如果substr的第二个参数为负数,则返回的字符串将从字符串末尾的起始字符开始。

而不是substr(substr('ab', -1), 1)

  • substr('ab', -1)将返回bsubstr('b', 1)将返回false,因为,始终如下所示:如果字符串小于起始字符长,则为FALSE返回。

这里没有错误。