在比较之前将 2 个字符串类型转换为 int 是否更好?
$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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您只需使用 相同 运算符即可。
编辑:现在看来,andre matos 已经断言这是最好的方法。
You can simply use the Identical operator.
Edit: Now that I look, andre matos already asserts which is the best way.
当使用 '==' 时,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 ('==').