偶尔遇到这个,查了一下,所以就摘录了。
逻辑运算符无非是将值进行逻辑运算。还有其它用法吗?首先让我们先看一下下面的代码,然后我们再一起展开话题。提前给出结论就是(&&)or(||)”这两种运算符在程序中可以加快PHP代码的运行速度。
首先,我给出一段代码:
$test="李四";
$test=="张三"&&$test="张三来了";
echo $test; //输出“李四”
$test="李四";
$test=="张三"||$test="张三不在这里";
echo $test; //输出“张三不在这里”
?>
为什么会产生这样的结果呢?如果按照平常的方法,我们最少要用个IF语句来判断。可现在只是两个逻辑运算就会把变量的值给改变了。下面我们来分析一下它的运行原理。
在参与逻辑运算的两边表达式中,是按照从左到右顺序进行运算的。而“与”运算中只要有一个是假,整个表达式的结果为假。所以,当左边表达式为假时,就无 需再进行运算了。这样的处理无疑对程序的运行效率是大有好处的。所以说正如题目所说,是一种高效的用法。而逻辑或就不同了:只要一个为真那整个表达式就为 真。所以,在左边为假的情况下,还要运行右边的表达式判断。明白或理解了上面所说,也就对结果不感到奇怪了。
上面的例子当然可以通过条件判断语句来实现,现在的情况一 个是减少了代码的量,最主要的是增加了程序的执行效率。掌握这一点的关键就是表达式的运行方向,是从左到右。当第一个值决定整个表达式的值时就会停止运 行。值得说明的是右边可以是一个表达式,也可以是一个函数,但不能是一系列的语句组合或输出语句。毕竟它还是逻辑表达式的一个组成部分。
最后,我们做以下总结:
对于“与”(&&) 运算: x && y 当x为false时,直接跳过,不执行y;
对于“或”(||) 运算 : x||y 当x为true时,直接跳过,不执行y。
最后,一起总结就是反之亦然。
来源:http://www.365testing.com/HTML/kaifa/PHP/PHPjichu/2010_1225_10471.html
浅谈HTTP中GET、POST用法以及它们的区别
浅谈HTTP中GET.POST用法以及它们的区别 HTTP定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符.我们可以这样认为: 一 ...
3rd 逻辑运算符的基本用法
03.01_Java语言基础(逻辑运算符的基本用法)(掌握) A:逻辑运算符有哪些 &,|,^,! &&,|| B:案例演示 逻辑运算符的基本用法 注意事项: a:逻辑运算符一 ...
在Python中使用lambda高效操作列表的教程
在Python中使用lambda高效操作列表的教程 这篇文章主要介绍了在Python中使用lambda高效操作列表的教程,结合了包括map.filter.reduce.sorted等函数,需要的朋友可 ...
Java中的Socket的用法
Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...
ecshop中foreach的详细用法归纳
ec模版中foreach的常见用法. foreach 语法: 假如后台:$smarty->assign('test',$test); {foreach from=$test item=list ...
matlab中patch函数的用法
http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...
C#中timer类的用法
C#中timer类的用法 关于C#中timer类 在C#里关于定时器类就有3个 1.定义在System.Windows.Forms里 2.定义在System.Threading.Timer类 ...
C#中dynamic的正确用法
C#中dynamic的正确用法 http://www.cnblogs.com/qiuweiguo/archive/2011/08/03/2125982.html dynamic是FrameWork4 ...
C++中typename关键字的用法
我在我的 薛途的博客 上发表了新的文章,欢迎各位批评指正. C++中typename关键字的用法
随机推荐
九度 Online Judge 之《剑指 Offer》一书相关题目解答
前段时间准备华为机试,正好之前看了一遍,就在九度 Online Judge 上刷了书中的题目,使用的语言为 C++:只有3题没做,其他的都做了. 正如 Linus To ...
【高级JSE技术】线程池
引言 线程池是java并发技术中常用的一种,通过缓存线程资源避免了频繁的创建销毁线程带来的额外开销,从而提高性能.JDK中有相应的Executor框架实现,而Spring中也带有线程池的功能.本文将从 ...
Eclipse 浏览文件插件- OpenExplorer
http://blog.csdn.net/w709854369/article/details/6599167 EasyExplorer 是一个类似于 Windows Explorer的Eclips ...
.NET 构造Class返回多个json值
上次总结使用DataTable返回多个值,后来看到一个小哥的返回方式和我的有所不同,便留意了一下.原来他构造一个Class,而我构造的是一个Table. 首先说说两者的区别:拿student举例,st ...
js添加的元素无法触发click事件
动态生成的元素,使用.on绑定事件,比如$(document).on("click",".divclick",function(){})
单链表ADT
本博客第一篇学术性博客,所以还是写点什么东西: 首先这篇博客以及以后的博客中的代码尽量百分之90是自己写过的: 可能有部分图片和代码是我认为别人更好的故摘抄下来, 本人三观正确,所以一定会表明来源: ...
机器学习技法笔记:03 Kernel Support Vector Machine
Roadmap Kernel Trick Polynomial Kernel Gaussian Kernel Comparison of Kernels Summary
Linux——curl(转)
先介绍curl工具的使用,在其他文章中介绍如何使用curl发送Identity API linux curl是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合传输工具 ...
VS2015 安装XAN
How to install XNA in Visual Studio 2015 (Preview) How can I install the templates and the the frame ...
【分享】Java后台开发精选知识图谱
地址 引言: 学习一个新的技术时,其实不在于跟着某个教程敲出了几行.几百行代码,这样你最多只能知其然而不知其所以然,进步缓慢且深度有限,最重要的是一开始就对整个学习路线有宏观.简洁的认识,确定大的学习 ...