我在调试字符串比较时遇到了很奇怪的经历。 从函数(Magento getCategoryUrl()) 生成的链接,但无法将其与其“打印”版本匹配;比较URL字符串时隐藏的字符
我尝试了所有可能的字符串比较选项,并且转义原始字符串。最后,使用strpos我发现问题出现在第一个“h”或之前。
$menu_link = $this->getMenuLink($cat_id)
echo $menu_link; // https://example.com/cat_1
if($menu_link == "https://example.com/cat_1"){...} // false
if($menu_link === "https://example.com/cat_1"){...} // false
if("https://example.com/cat_1" == $menu_link){...} // false
if(strcmp($menu_link , "https://example.com/cat_1") == 0){...} // false
if(strcasecmp($menu_link , "https://example.com/cat_1") == 0){...} // false
//Sanity Check ...
if("https://example.com/cat_1" == "https://example.com/cat_1"){...} //true..
$menu_link = "". trim($menu_link); // no effect
if($menu_link === "https://example.com/cat_1"){...} // false
if(strpos($menu_link , "https://example.com/cat_1")){...} //false
// ONLY THIS WORKS ?!
if(strpos($menu_link , "ttps://example.com/cat_1")){...} //true
仍然无法解释为什么会发生这种情况。
UPDATE
作为@u_mulder建议我尝试过的var_dump,它gives string(51) ...
但长度是不正确的,有9个多余的字符。 我找不到任何方式打印出来..
'的var_dump($ menu_link)' –
@u_mulder var_dumps给串......但可疑的长度: 'string(51)“https://www.domain12.com/catering-services”'有9个不显示的字符,如果这是正确的。 –
因此,现在是时候了解这些符号来自哪里。 –