整数变量 php 之前的感叹号

  • 本文关键字:感叹 变量 php 整数 php
  • 更新时间 :
  • 英文 :

function test_function (int $a){
    
    if(!$a>0){
         echo "in";
    }else{
         echo "out"
    }
}
test_function(0);//output: in  
test_function(2);//output: out  
test_function(4);//output: out

我知道 PHP 自己的运算符优先级开始生效,感叹号在"大于"运算符之前进行第一次计算。没关系。

我希望PHP能在这里抛出一个错误,说"不能对整数进行布尔运算"。但无论如何,简单的解决方案是使用参数:

if(!($a>0))

这负责优先级。但是在大型代码库中,您是否有任何其他建议来防止事故发生?

!-运算符是布尔代数中的 not 运算符。PHP 努力允许动态变量实例化。

在您的情况下!$a>0会导致"(不是$a)> 0"。第二个是!($a>0)将谈判$a>0的结果。

这两种方式在技术上都很好(并且可能比另一种更有意义)。如果你真的想避免不协商非整数,只需检查你得到什么:

if (is_int($a) && !($a > 0)) {

你只需要一个非常好的建模。正如其他人所指出的,负责定义IF的人只需要擅长PHP。根据那里需要实现的逻辑,这取决于编码人员是否需要分离逻辑,因为$variable>数字总是返回"真"或"假",看看 Michail Hirschler 的实现,这是一个非常好的。

最新更新