鉴于字符串$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中也是如此
答案 0 :(得分:2)
substr(substr('ab', 1), -1)
会发生什么:
substr('ab', 1)
返回b
,substr('b', -1)
返回b
。为什么?作为 documented ,如果substr
的第二个参数为负数,则返回的字符串将从字符串末尾的起始字符开始。而不是substr(substr('ab', -1), 1)
:
substr('ab', -1)
将返回b
,substr('b', 1)
将返回false
,因为,始终如下所示:如果字符串小于起始字符长,则为FALSE返回。 这里没有错误。