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

Php 将substr中的负开始参数定义为变量,php,parameters,substr,Php,Parameters,Substr,正在使用以下正确选项定义substr的负开始参数, 因为这是我知道如何得到正确结果的唯一方法 $start == (-44); or $start == (int) -44; $pair = substr($str, $start, 4); 只需在表达式(包括变量)之前添加一个-,即可反转其符号: $pair = substr($str, -$start, 4); 或 substr调用有效,代码中唯一的错误(发布在此处)是=运算符 应该是: $start = -44; $pair = s

正在使用以下正确选项定义substr的负开始参数, 因为这是我知道如何得到正确结果的唯一方法

$start == (-44); 
or
$start == (int) -44;

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

只需在表达式(包括变量)之前添加一个
-
,即可反转其符号:

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


substr
调用有效,代码中唯一的错误(发布在此处)是
=
运算符

应该是:

$start = -44;
$pair = substr($str, $start, 4)
起始值也是从开始或结束算起的第44个字符。上述代码将
-44
视为从字符串末尾算起的第44个字符


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

您不能使用
substr($str,-44,4)?如果你这样做,会出现什么错误?你到底想做什么?也许我们可以建议一种不同的方法。此外,只要您在代码中没有实际使用
==
而不是
$start=something
,任何一种方法在语法上都是正确的。另外:在问题或实际代码中使用比较运算符是错别字吗?如果你没有将-44赋值给$start,我想得到你期望的结果一定是巧合。也许你可以发布一个示例字符串,这样我们会更容易提供帮助。如果你只是想让所有内容都超过前4个字符,你可以使用
$all\u but\u first\u 4=substr($str\u tmp,4)并获取前四个
$first\u 4=substr($str\u temp,0,4)
$start = -44;
$pair = substr($str, $start, 4)