substr_compare()在php中返回错误的值

substr_compare()在php中返回错误的值,php,substring,Php,Substring,第三个值是起始位置,所以我把它设为2,它应该返回0 但它返回“1”,为什么 “起始位置”仅指第一个字符串中的起始位置,而不是两者 这导致所比较的字符串完全不同。(在您的例子中,您正在比较'arner'和'Learner') 您要做的是从该点开始比较两个字符串。为此,在比较时需要引用子字符串而不是整个字符串 $txt1 = "Bearner"; $txt2 = "Learner"; $per = substr_compare(substr($txt1, 2), substr($txt2, 2),

第三个值是起始位置,所以我把它设为2,它应该返回0

但它返回“1”,为什么


“起始位置”仅指第一个字符串中的起始位置,而不是两者

这导致所比较的字符串完全不同。(在您的例子中,您正在比较
'arner'
'Learner'

您要做的是从该点开始比较两个字符串。为此,在比较时需要引用子字符串而不是整个字符串

$txt1 = "Bearner";
$txt2 = "Learner";
$per = substr_compare(substr($txt1, 2), substr($txt2, 2), 0);

如果运行此代码,您将看到它按预期返回0。

'Start position'仅指第一个字符串中的开始位置,而不是两者

这导致所比较的字符串完全不同。(在您的例子中,您正在比较
'arner'
'Learner'

您要做的是从该点开始比较两个字符串。为此,在比较时需要引用子字符串而不是整个字符串

$txt1 = "Bearner";
$txt2 = "Learner";
$per = substr_compare(substr($txt1, 2), substr($txt2, 2), 0);

如果运行此代码,您将看到它按预期返回0。

只有第一个参数在位置
x
处被剪切,第二个参数保持不变<代码>子比较($txt1,$txt2,2)将比较“arner”和“Learner”

$txt1 = "Bearner" ;
$txt2 = "arner" ;
$per = substr_compare($txt1, $txt2, 2); 
var_dump($per) ; // 0 
如果要比较两个子字符串,需要自己剪切它们:

$txt1 = "Bearner" ;
$txt2 = "Learner" ;
$per = strcmp( substr($txt1, 2), substr($txt2, 2) );
var_dump($per); // 0

只有第一个参数在位置
x
处被切割,第二个参数保持不变<代码>子比较($txt1,$txt2,2)将比较“arner”和“Learner”

$txt1 = "Bearner" ;
$txt2 = "arner" ;
$per = substr_compare($txt1, $txt2, 2); 
var_dump($per) ; // 0 
如果要比较两个子字符串,需要自己剪切它们:

$txt1 = "Bearner" ;
$txt2 = "Learner" ;
$per = strcmp( substr($txt1, 2), substr($txt2, 2) );
var_dump($per); // 0

那么,为什么不删除第一个
substr()
调用并将
2
保留为第三个参数呢@是的,那也会有同样的效果!我个人更喜欢这样说,因为我发现它更容易理解,所以为什么不删除第一个
substr()
调用并保留
2
作为第三个参数呢@是的,那也会有同样的效果!我个人更喜欢这样说,因为我觉得这样更容易理解