亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

不明白這里為什么三元運算?

$row = $no%$maxLine?$no%$maxLine:$maxLine;不可以直接用嗎?$row=$no%$maxLine。如何要用到三元運算那如何比較$row得出true或是false。是不是等于0就是false?

正在回答

1 回答

$row?=?$no%$maxLine?no%$maxLine:$maxLine;

這里根據優先級,是先計算后面的三目運算。后賦值。

三目運算符,又稱為三元運算符。

語法:條件 ? 結果1 : 結果2?

?前面是條件,如果條件為真,那么返回結果1,否則返回結果2。

這里定義的變量$row存儲的值是列數。這里如果$no%$maxLine成立(%是取模的意思,即求余數。),如果成立,返回no%$maxLine,否則返回$maxLine。

即學生編號除以每排人數有余數,返回余數,否則返回每排人數。

為什么要這樣捏?假如學生編號16,16除以4是沒有余數,那么是不是就是在第4列(跟每排人數剛好一樣)。

需要知道的一點,取模運算中,如果被模數不夠取模,是直接返回被模數。如:3%4,返回的是3。


3 回復 有任何疑惑可以回復我~
#1

一失手成千古恨 提問者

如果16除以4沒有余數就是0么?所以是false,結果選擇2?
2015-11-27 回復 有任何疑惑可以回復我~
#2

Perona 回復 一失手成千古恨 提問者

是呀,選擇2,返回的是$maxLine
2015-11-27 回復 有任何疑惑可以回復我~
#3

zqbinary 回復 一失手成千古恨 提問者

0就是0不是false,我用$no=16做實驗,得到的位置(列)為0; 其實這道題細琢磨還有挺取巧的,按代碼的意思,$no以1為始,所以對應的取的商是上整,取得余則是1,2,3,4(關鍵是把零巧妙的變成4,還有個例子是在js中對星期的處理,讓周一到周六和1,2,3,4,5,6對應,而周日和0對應); ps:如果從0號開始的話,就直接$row=$no%$maxLine;當然ceil()要改成floor();
2016-02-11 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
PHP入門篇
  • 參與學習       456423    人
  • 解答問題       6590    個

PHP入門教程輕松學習,行業大牛幫您快速掌握PHP編程基礎知識。

進入課程

不明白這里為什么三元運算?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號