将substr中的负开始参数定义为一个变量


defining the negative start parameter in substr as a variable

使用以下正确方法定义子字符串的负开始形参:因为这是我知道的唯一能让它返回正确结果的方法。

$start == (-44); 
or
$start == (int) -44;
$pair = substr($str, $start, 4);

substr调用是有效的,您的代码(张贴在这里)中唯一的错误是==操作符。

应该是:

$start = -44;
$pair = substr($str, $start, 4)

也是起始值-44从开始或结束的第44个字符。上面的代码认为-44表示从字符串结束的第44个字符。

如果$str的长度小于44,您可能会遇到另一个错误

您可以在表达式(包括变量)之前添加-来反转其符号:

$pair = substr($str, -$start, 4);

$pair = substr($str, -44, 4);