PHP strcmp() 给我数字 '6' 作为输出

PHP strcmp() is giving me number '6' as output

我正在比较两个短字符串(一些包含数字,一些包含字母,一些是混合的)与 strcmp() 期望输出为 0、-1 或 1(或者我会以不同的方式说:肯定有是 1 场比赛,但它始终是 'no match',即始终不是 0) 但出于某种奇怪的原因,无论如何我都会得到“6”,这是我的代码:

$_delim = '</div>';
$_str = '';
$_struct = explode($_delim, file_get_contents($_pthPHP.'_sets.php'));
$_c = count($_struct);
$_patternIMG = '/data-img="(.*?)"/';
$_patternLIKTYPE = '/data-link-type="(.*?)"/';

for ($i = 0; $i < ($_c - 1); $i++)
{
    preg_match($_patternIMG, $_struct[$i], $matchesA); // DATA-IMG = NAZOV SETU
    $_iteratedSet = explode('<?= $def_path ?>', $matchesA[1]);
    $_actualSet = explode('-', $verzia);

    $_strA = trim($_iteratedSet[1]);
    $_strB = trim($_actualSet[0]);

    echo strcmp((string)$_strA, (string)$_strB).'<br />'; // TESTING COMPARISON VALUE

    if(strcmp($_strA, $_strB) == 0)
    {
        preg_match($_patternLIKTYPE, $_struct[$i], $matchesB); // DATA-LINK-TYPE
        $_linkType = $matchesB[1];
        echo 'link type = '.$_linkType;
        break;
    }
}

我正在寻找一个解决方案,我在 Whosebug 上找到了一个假设的解决方案,它基本上将“(string)”的文件前缀添加到两个比较的字符串,但它没有任何效果,输出仍然很奇怪 '6 ' - 有人知道为什么并且可以帮助我吗?

已解决

发生了 2 件事: - 我错误地认为输出只能是 0、1 或 -1 - 我错误地向其中一个字符串输入了错误的变量:-(

...所以现在一切都符合预期,感谢@Erhan 的解释(上面的代码已经修复,所以它实际上显示了功能)

您的输出不必完全是 1 或 -1。如果它们相等,则输出将为零 (0),否则输出将为 <0 或 >0 来自 php.net

Returns < 0 if str1 is less than str2; > 0 if str1 is greater than str2, and 0 if they are equal.