在比较之前将 2 个字符串类型转换为 int 是否更好?

发布于 2024-12-12 03:44:41 字数 205 浏览 0 评论 0原文

$a = '1';
$b = '1';

// Method 1
if ($a == $b) { ... }

// Method 2
if ((int)$a == (int)$b) { ... }

哪个是更好的解决方案?我在这里考虑的是编程最佳实践,而不一定是性能。

$a = '1';
$b = '1';

// Method 1
if ($a == $b) { ... }

// Method 2
if ((int)$a == (int)$b) { ... }

Which is the better solution? I'm thinking here of programming best practices and not necessarily performance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

£冰雨忧蓝° 2024-12-19 03:44:41

您只需使用 相同 运算符即可。

编辑:现在看来,andre matos 已经断言这是最好的方法。

You can simply use the Identical operator.

Edit: Now that I look, andre matos already asserts which is the best way.

沧笙踏歌 2024-12-19 03:44:41

当使用 '==' 时,PHP 会处理各种类型,无论如何都会对它们进行强制转换。因此,在比较它们之前,我看不出将它们转换为整数有任何优势。

如果您正在寻找更强大的解决方案,可以将它们转换为整数,然后使用 Identical ('==='),它匹配相等性和类型,而不是 Equal ('==')。

When using '==' PHP will juggle the types around, casting them anyway. Therefore, I can't see any advantage in casting them to integer before comparing them.

If you're looking for a more robust solution, you could cast them to integers and then use Identical ('==='), which matches both equality and type, and not Equal ('==').

太阳哥哥 2024-12-19 03:44:41
echo 1 == '1'; # true
echo 1 === '1'; # false
echo '1' === '1'; # true
echo '1' == '1'; # true
echo 1 == '1'; # true
echo 1 === '1'; # false
echo '1' === '1'; # true
echo '1' == '1'; # true
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文