滚动代码时,您可能会遇到类似 if (1 === $var) 的内容。
if ($var === 1) 和 if (1 === $var) 之间可能有什么区别?
如果($var === 1)
如果 (1 === $var)
- 这被称为“尤达条件”,来自著名的绝地大师倒着说话。
必须知道,这两种方法在功能上没有区别。那么,为什么在编写条件时要使用 yoda 条件呢?
使用尤达条件的唯一原因
在编写 if 语句时,可能会漏掉一些等号。问题是当你最终得到这样的结果时:
1 2 3 |
|
这里发生了什么?
立即学习“php免费学习笔记(深入)”;
未检测到错误,因为此代码有效。问题是它没有按预期工作:变量分配为值1,不执行比较并且它始终为true。
这就是尤达条件有用的地方;同样的情况,我们得到:
1 2 3 |
|
这里我们也错过了一些等于,但代码无效,这一次,我们收到错误,因为这是无效的。
结论
我们已经看到 yoda 条件的唯一目的是避免意外赋值,而这会导致可读性降低。
你应该使用它吗?为什么不呢!但请记住,这不会对您的代码有任何改进。
它还可以帮助你在与开发者的聚会上展示自己(顺便说一句,这种情况并不经常发生)。
感谢您的阅读,谢谢! ?