为了账号安全,请及时绑定邮箱和手机立即绑定

什么意思,我都不懂。。。。。。。。。。。。

<?php
     $maxLine = 4; //每排人数
     $no = 17;//学生编号
     $line =ceil($no/$maxLine);
     $row = $no%$maxLine?no%$maxLine:$maxLine;
     
     echo "编号<b>".$no."</b>的座位在第<b>".$line."</b>排第<b>".$row."</b>个位置";
?>

正在回答

2 回答

给@Perona点个赞 本来不会的看评论会了 啊啊哈


0 回复 有任何疑惑可以回复我~
#1

Perona

[害羞]谢谢捧场
2015-11-13 回复 有任何疑惑可以回复我~
$maxLine = 4; //每排人数
$no = 17;//学生编号

这2行分别定义变量$maxLine 和变量$no ,并且赋值。

$line =ceil($no/$maxLine);

这一行定义变量$line,赋值为$no(学生编号)除以$maxLine(每排人数)的结果向上取整ceil。为什么要向上取整。一排是4位,那么编号5~8是不是都在2排。如:5/4,结果为1.25。那么向上取整是1。这个变量其实存的就是排号数。

这里要明白ceil() 函数。

ceil() 函数向上舍入为最接近的整数。注意不是四舍五入。

如:

<?php
echo(ceil(0.6);//输出结果是1
echo(ceil(0.4);//输出结果是1
?>
$row = $no%$maxLine?no%$maxLine:$maxLine;

这里用的是三目运算符,又称为三元运算符。

语法:条件 ? 结果1 : 结果2 

?前面是条件,如果条件为真,那么返回结果1,否则返回结果2。

这里定义的变量$row存储的值是列数。这里如果$no%$maxLine成立(%是取模的意思,即求余数。),如果成立,返回no%$maxLine,否则返回$maxLine。

即学生编号除以每排人数有余数,返回余数,否则返回每排人数。

为什么要这样捏?假如学生编号16,16除以4是没有余数,那么是不是就是在第4列(跟每排人数刚好一样)。

需要知道的一点,取模运算中,如果被模数不够取模,是直接返回被模数。如:3%4,返回的是3。

echo "编号<b>".$no."</b>的座位在第<b>".$line."</b>排第<b>".$row."</b>个位置";

这一句就不用解释了吧,就是输出语句而已。

7 回复 有任何疑惑可以回复我~
#1

Perona

不好意思,“如:5/4,结果为1.25。那么向上取整是1。”这一句打错了,应该是:“如:5/4,结果为1.25。那么向上取整是2。”
2015-11-09 回复 有任何疑惑可以回复我~
#2

极客研习社

输出语句中“.”句点的作用是连接符吗??
2018-02-09 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
PHP入门篇
  • 参与学习       456421    人
  • 解答问题       6590    个

PHP入门教程轻松学习,行业大牛帮您快速掌握PHP编程基础知识。

进入课程

什么意思,我都不懂。。。。。。。。。。。。

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号