qq_慕村5155451
2019-09-22 10:47
谁能解释一下这是什么意思?对着敲,完全看不懂
<?php $maxLine = 4;//每排人数 $no = 20;//学生编号 $line = ceil($no/$maxLine);//ceil函数向上舍入为最接近的整数,17÷4=4.25,向上最接近的整数是5。所以得到改名学生在第5排 $row = $no%$maxLine?$no%$maxLine:$maxLine;//定义位置的变量名为row,用学生编号除以每排人数,求得余数为1。即位置是第1位。再用三元运算符判断,$row=1?1:4,$no%$maxLine的余数大于0,结果为true,row取值为1。 //学生编号是其他数字,也是类似的推算。如果编号是18,那余数为2,$no%$maxLine的余数大于0,结果为true,$row=2?2:4,row取值为2。 //编号是19,那余数为3,,$row=3?3:4,$no%$maxLine的余数大于0,结果为true,row取值为3。 //编号是20,那余数为0,,$row=0?0:4,$no%$maxLine的余数为0,结果为false,row取值为4。 echo "编号<b>".$no."</b>的座位在第<b>".$line."</b>排第<b>".$row."</b>个位置"; ?>
//--------自己复述一下代码意思:----------- $maxLine = 4; //每排人数 $no = 17;//学生编号 //如果学生编号不被排数整除,那么学生所在排数就是相除后的排数的后面一排. if($no%$maxLine!=0){ // $line=round($no/$maxLine)+1; $row=$no%$maxLine; echo "编号<b>".$no."</b>的座位在第<b>".$line."</b>排第<b>".$row."</b>个位置"; } //被整除就是在$line排上的最后一个位置 else $line=round($no/$maxLine); echo "编号<b>".$no."</b>的座位在第<b>".$line."</b>排第<b>".$maxLine."</b>个位置";
$line = ceil($no/$maxLine);
意思是:
考生在第几排= 考生编号16 除以 每排最多4个人,所以16号考生在第4排.
如果这里考生编号是17, 17÷4=4.25
需要用到ceil()函数,这个函数的作用是:向上舍入为最接近的整数: 4.25变为5,也就是考生17号 在第5排.
____________________________________________________________________________________________________________
$row=($no%$maxLine)?($no%$maxLine):($maxLine);
这里我的理解是:
($no%$maxLine)得到一个余数;
余数就是 17 除以 4 等于 4 余 1 (整除后剩下的数字就是余数)
这里如果能整除,值是0,0会被识别为null,null为false,非0的数值是true
如果余数不是0 则为ture, $row=expr2
如果余数是0 则为flase, $row=expr3
ceil() 函数向上舍入为最接近的整数。
ceil(x)
参数 | 描述 |
---|---|
x | 必需。一个数。 |
在本例中,我们将对不同的值应用 ceil() 函数:
<?php echo(ceil(0.60); echo(ceil(0.40); echo(ceil(5); echo(ceil(5.1); echo(ceil(-5.1); echo(ceil(-5.9)); ?>
输出:
1 1 5 6 -5 -5
从w3schoo复制的
遇到不会的函数可以百度下哈
PHP入门篇
455994 学习 · 6306 问题
相似问题