substr_compare()在php中返回错误的值
第三个值是起始位置,所以我把它设为2,它应该返回0 但它返回“1”,为什么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),
“起始位置”仅指第一个字符串中的起始位置,而不是两者 这导致所比较的字符串完全不同。(在您的例子中,您正在比较
'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
作为第三个参数呢@是的,那也会有同样的效果!我个人更喜欢这样说,因为我觉得这样更容易理解