strpos 不适用于搜索以 X 开头的术语

我需要根据 $assetName 更改十进制数的长度。为此,我正在使用 strpos,如下所示:


if (strpos($assetName, 'JPY') || strpos($assetName, 'XAG'))

{

    $decimal = 3;

}

elseif (strpos($assetName, 'OIL') || strpos($assetName, 'XAU'))

{

    $decimal = 2;

}

else

{

    $decimal = 5;

}

它不适用于 XAG 和 XAU,而适用于 JPY 和 OIL。如果我尝试使用 XAG 或 XAU,则 $decimal 等于 5。如果我使用 AGU 而不是 XAG,则它在 $assetName = XAGUSD 时有效。


我猜一开始是 X 会导致问题,但我找不到解决方案。


波斯汪
浏览 105回答 1
1回答

子衿沉夜

您应该使用严格的类型检查来检查 strposstrpos($assetName, 'JPY') !== false因为当搜索到的字符串恰好在第 0 个索引处匹配时,它在if语句中为 false,但如果通过严格的类型比较检查则不是 false。注意:-返回针相对于haystack字符串开头的位置(与偏移量无关)。另请注意,字符串位置从 0 开始,而不是 1。如果未找到针头,则返回FALSE 。
打开App,查看更多内容
随时随地看视频慕课网APP