PHP ! 非运算符 与 if 判断深入研究

简介:

!非 !x 如果x不为true则返回true。

我们经常用!进行一些判断。

看实例,我们发现经过‘非’处理之后,都转化成了bool值。用于if判断很有用。

var_dump(!0); // bool(true)
var_dump(!false); // bool(true)
var_dump(!array()); // bool(true)
var_dump(!null); // bool(true)
var_dump(!''); // bool(true)
var_dump(!'0'); // bool(true)


var_dump(!1); // bool(false)
var_dump(!true); // bool(false)
var_dump(!'1'); // bool(false)
var_dump(!'null'); // bool(false)
var_dump(!'false'); // bool(false)
var_dump(!'true');  // bool(false)

看看它们原来的类型

var_dump(0); // int(0)
var_dump(false); // bool(false)
var_dump(array()); // array(0) {}
var_dump(null); // NULL
var_dump(''); // string(0) ""
var_dump('0'); // string(1) "0"

var_dump(1); // int(1)
var_dump(true); // bool(true)
var_dump('1'); // string(1) "1"
var_dump('null'); // string(4) "null"
var_dump('false'); // string(5) "false"
var_dump('true');  // string(4) "true"

强制转化为bool后的类型

var_dump((bool)0); // bool(false)
var_dump((bool)false); // bool(false)
var_dump((bool)array()); // bool(false)
var_dump((bool)null); // bool(false)
var_dump((bool)''); // bool(false)
var_dump((bool)'0'); // bool(false)

var_dump((bool)1); // bool(true)
var_dump((bool)true); // bool(true)
var_dump((bool)'1'); // bool(true)
var_dump((bool)'null'); // bool(true)
var_dump((bool)'false'); // bool(true)
var_dump((bool)'true');  // bool(true)

小结:'非'处理,就是把任何类型先强制转化为bool之后,如果是true,就返回false。如果是false,就返回true。用于if条件判断很有效!

if (0) { // 不通过
    echo "通过";
} else  {
    echo "不通过";
}

if (false) { // 不通过
    echo "通过";
} else  {
    echo "不通过";
}

if (array()) { // 不通过
    echo "通过";
} else  {
    echo "不通过";
}

if (null) { // 不通过
    echo "通过";
} else  {
    echo "不通过";
}

if ('') { // 不通过
    echo "通过";
} else  {
    echo "不通过";
}

if ('0') { // 不通过
    echo "通过";
} else  {
    echo "不通过";
}

if (1) { // 通过
    echo "通过";
} else  {
    echo "不通过";
}

if (true) { // 通过
    echo "通过";
} else  {
    echo "不通过";
}

if ('1') { // 通过
    echo "通过";
} else  {
    echo "不通过";
}

if ('null') { // 通过
    echo "通过";
} else  {
    echo "不通过";
}

if ('false') { // 通过
    echo "通过";
} else  {
    echo "不通过";
}

if ('true') { // 通过
    echo "通过";
} else  {
    echo "不通过";
}

小结: 由上述例子可以看出,if将任何类型转化成bool型,进行判断,字符串一般都是true,'0'除外!



本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/5809165.html,如需转载请自行联系原作者

相关文章
|
9月前
|
关系型数据库 MySQL PHP
PHP 原生操作 Mysql
PHP 原生操作 Mysql
92 0
|
9月前
|
关系型数据库 MySQL 数据库连接
PHP 原生连接 Mysql
PHP 原生连接 Mysql
118 0
|
9月前
|
关系型数据库 MySQL Unix
PHP MySql 安装与连接
PHP MySql 安装与连接
169 0
|
1天前
|
NoSQL 关系型数据库 MySQL
linux服务器重启php,nginx,redis,mysql命令
linux服务器重启php,nginx,redis,mysql命令
7 1
|
1月前
|
关系型数据库 MySQL PHP
|
23天前
|
Ubuntu 关系型数据库 MySQL
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
16 0
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
|
10天前
|
前端开发 关系型数据库 MySQL
使用 PHP 和 MySQL 实现留言板功能
使用 PHP 和 MySQL 实现留言板功能
28 0
|
1月前
|
关系型数据库 MySQL PHP
unbuntu搭建LAMP(Apache2+PHP+MySQL+phpmyadmin)
unbuntu搭建LAMP(Apache2+PHP+MySQL+phpmyadmin)
|
1月前
|
关系型数据库 MySQL PHP
【PHP 开发专栏】PHP 连接 MySQL 数据库的方法
【4月更文挑战第30天】本文介绍了 PHP 连接 MySQL 的两种主要方法:mysqli 和 PDO 扩展,包括连接、查询和处理结果的基本步骤。还讨论了连接参数设置、常见问题及解决方法,如连接失败、权限和字符集问题。此外,提到了高级技巧如使用连接池和缓存连接信息以优化性能。最后,通过实际案例分析了在用户登录系统和数据管理中的应用。