php短路与 短路或
关于php短路的问题特性,三种写法的区别
$b=0;
第一种: $a && $b = 'cccccccc';
第二种 $a || $b = 'cccccccc';
第三种 if($a && $b){
$b = 'cccccccc';
}
echo $b;
谁能说说这个呢?怎么理解呢?
php中=是赋值, 在if中要判断条件是要用==的
第一种: if($a && $b = 'cccccccc'), 首先判断$a是不是true?返回true, 并且 $b = 'cccccccc'(这其实是赋值,不是判断),也返回true, 所以整个if返回是true, $b = 'cccccccc' 第二种 if($a || $b = 'cccccccc') 2个条是或的关系, 那么首先判断$a是不是true?返回true, 那么直接if返回的就是true, $b = 'cccccccc'这个根本就没有执行, $b=0 第三种 if($a && $b) 首先判断$a是不是true?结果是true; 然后判断$b是不是true?结果是false, 那么if的结果就是false, if的语句不执行. $b=0 在php运行的结果就是:
$a = 1; $b=0;
if($a && $b = 'cccccccc') echo $b; //返回cccccccc $a = 1; $b=0;
if($a || $b = 'cccccccc') echo $b; //返回0 $a = 1;$b=0;
if($a && $b){ $b = 'cccccccc';}
echo $b; //返回0
其他回答
所以第一种是先计算$a&&$b 再算赋值
第二种是先$a||$b 但是||符号只要有一个成立就全部成立了,所以当$a不等于0 ,后面的就不会再进行运算了(因为后面无论是否运算都整个值都是成立的)。
第三种是判断,if内是不成立的,所以b的赋值也不会进行。
结果依次为 cccccccc 0 0
php短路与 短路或的更多相关文章
- 算法笔记--次小生成树 && 次短路 && k 短路
1.次小生成树 非严格次小生成树:边权和小于等于最小生成树的边权和 严格次小生成树: 边权和小于最小生成树的边权和 算法:先建好最小生成树,然后对于每条不在最小生成树上的边(u,v,w)如果我们 ...
- hdu 2544最短路——最短路的初次总结 UESTC 6th Programming Contest Online
这是一道标准的模板题,所以拿来作为这一段时间学习最短路的总结题目. 题意很简单: 有多组输入数据,每组的第一行为两个整数n, m.表示共有n个节点,m条边. 接下来有m行,每行三个整数a, b, c. ...
- BZOJ 1726: [Usaco2006 Nov]Roadblocks第二短路( 最短路 )
从起点和终点各跑一次最短路 , 然后枚举每一条边 , 更新answer ---------------------------------------------------------------- ...
- HDU2544-最短路(最短路模版题目)
Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要 ...
- 最短路 次短路 k短路(k很小)
最短路 luogu 3371 https://www.luogu.org/problemnew/show/P3371 #include <cstdio> #include <cstd ...
- LOJ#6354. 「CodePlus 2018 4 月赛」最短路[最短路优化建图]
题意 一个 \(n\) 个点的完全图,两点之间的边权为 \((i\ xor\ j)*C\) ,同时有 \(m\) 条额外单向路径,问从 \(S\) 到 \(T\) 的最短路. \(n\leq 10^5 ...
- BZOJ1726: [Usaco2006 Nov]Roadblocks第二短路 K短路
Description 贝茜把家搬到了一个小农场,但她常常回到FJ的农场去拜访她的朋友.贝茜很喜欢路边的风景,不想那么快地结束她的旅途,于是她每次回农场,都会选择第二短的路径,而不象我们所习惯的那样, ...
- HAOI 2005 路由选择问题 (最短路+次短路)
问题描述 X城有一个含有N个节点的通信网络,在通信中,我们往往关心信息从一个节点I传输到节点J的最短路径.遗憾的是,由于种种原因,线路中总有一些节点会出故障,因此在传输中要避开故障节点. 任务一:在己 ...
- [BZOJ4699]树上的最短路(最短路+线段树)
https://www.cnblogs.com/Gloid/p/10273902.html 这篇文章已经从头到尾讲的非常清楚了,几乎没有什么需要补充的内容. 首先$O(n\log^2 n)$的做法比较 ...
随机推荐
- 将类型(int,string,…)转换为 T 类型
方法定义: private static T GetValueByKey<T>(string key) where T : IConvertible { T localVal=defaul ...
- 推荐几个好用的在线svn空间
推荐 免费的svn空间 1.http://www.svn999.com/ [推荐] 个人感觉比svnchina.svnspot好用多了,申请容易,功能齐全,速度也很快,关键还是免费容量比svnchin ...
- Git-克隆仓库
二 克隆Git仓库 1.1 从远程仓库中克隆整个代码仓库 mkdir 17Cy //在当前路径下新建一个文件夹,用来存放将要拉取的整个代码库 cd 17Cy //进入这个文件夹 repo i ...
- Java 生成验证码
package com.lf.testvity; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; im ...
- Linux内核中大小端判定宏
#include <stdio.h> ];unsigned long mylong;} endian_test = { {'l','?','?','b'} }; #define ENDIA ...
- JavaScript模块化开发整理
在网上已经有很多关于模块化开发的文章了,这里还是按照自己的理解来整理一下. 随着项目文件的越来越大和需求的越来越贴近现实(我发现现在客户不如:一个领导说我要审批你们报上来的资料,系统发布以后用的还不错 ...
- GridView布局,自定义适配器,水平滚动
添加GridItem布局XML文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...
- C#实现鸽巢排序
/// <summary> /// 鸽巢排序 /// 创建一个长度大于等于待排序数组array元素中最大值的标记数组mark, /// 将数组array中元素值个数映射到mark数组中. ...
- linux 下搭建svn
Update 程序设计中的“后悔药”——SVN 一.历史起源 1.版本控制软件 答:主要是对源代码版本进行控制与管理 2.版本控制软件起源 CVS:最早期的开源的版本控制软件(开源奇葩) VSS: ...
- 关于安装qt之后的qmake命令
今天通过在archlinux中安装qt5发现了关于qmake这个命令的一些事情. 1. /bin/qmake 是 /bin/qtchooser 的符号链接,/bin/qtchooser 由一个叫 qt ...