平常中見(jiàn)過(guò)那種高大上的寫(xiě)法,有沒(méi)有摩拜的感覺(jué)?
可能不會(huì)說(shuō),不!我看不懂==,沒(méi)救了,少年。。。
(òωó?)!哈哈 我來(lái)教你怎么看懂那種邏輯運(yùn)算代碼
來(lái)先看一個(gè)簡(jiǎn)單的邏輯
場(chǎng)景:
假設(shè)有一個(gè)蘋(píng)果,有鳴人,柯南(動(dòng)畫(huà)片的人物哈哈)2個(gè)人
問(wèn)題
如果鳴人有蘋(píng)果,那么柯南得到一個(gè)橘子,否則可能得到一個(gè)香蕉
簡(jiǎn)單吧。
解決:人物為變量,采用拼音
方法一 if大法
if($mingren.hasApple()){
$kenan =getOrange();
}else{
$kenan =getBanana();
}
注:簡(jiǎn)單吧,但是low不low啊 ,都21世紀(jì)了,玩點(diǎn)高大上的
方法二: 三木運(yùn)算
$kenan = $mingren.hasApple() ? getOrange() : getBanana() ;
注:是不是好多了哈
不過(guò)都不是我要說(shuō)的,來(lái)看高大上的吧
方法三 高大上
$kenan= getOrange() :
$mingren.hasApple() || $kenan = getBanana() ; //*重點(diǎn)
猜對(duì)了,這么牽強(qiáng)的說(shuō)這么多,我要說(shuō)的就是那個(gè)重點(diǎn),
是不是在某個(gè)項(xiàng)目中看過(guò)類(lèi)似的代碼,對(duì)于很多人而言,乍一看,返回值Boolean值,干嘛用的,No!返回值是Boolean沒(méi)錯(cuò),但是玄機(jī)很大。
簡(jiǎn)單寫(xiě)個(gè)荔枝吧(php代碼)
$a = 6;
$b = 5;
if ($a = 3 || $b = 8) {
var_dump($b);
var_dump($a);
}
猜猜答案:
答案:$a = true $b = 5
分析:if中優(yōu)先級(jí):$a = (3 || $b = 8)
3先與后面的邏輯或運(yùn)算比較,所以賦給$a的值是true,而不是3;
輸出$b的值是依然是5,即在邏輯或運(yùn)算中,第一個(gè)成立的話,則第二個(gè)以及以后的就無(wú)需再進(jìn)行比較計(jì)算了;
所以,最后一個(gè)式子知道答案了,以后看到這種寫(xiě)法肯定知道問(wèn)題所在了吧