为什么"echo !!! 0"输出为1?

Moh*_*diq 1 php

我无法理解为什么我从PHP的下面的语句中得到输出"1",

<?php echo !!!0;?>
Run Code Online (Sandbox Code Playgroud)

请让我知道原因

kni*_*ttl 11

该语句被解析为!(!(!0)).!是逻辑否定运算符.当将它应用于除布尔值之外的任何其他类型(true/false)时,操作数首先被强制转换为布尔值(0,空字符串,空数组,空,空SimpleXML对象= false;其他一切都为真).

让我们打破声明:

!!!0 ==
!!!false ==
!!true ==
!false ==
true
Run Code Online (Sandbox Code Playgroud)

最后,echo true将输出1.