本帖最后由 gentledream 于 2020-8-8 15:18 编辑
PHP学习第3天,我爱PHP
1.IF如果:结果为真,执行相应语句
[Asm] 纯文本查看 复制代码 // 写法1// 此写法如条件为TRUE,则执行IF后的一条语句
if(3 > 1)
echo '3 > 1';
// 写法2
if(9 > 3){
echo '9 > 3';
}
// 写法3
if(5 > 2):
echo '5 > 2';
endif;
2.else,elseif
else:条件为真执行一段,条件为假执行另一段
[PHP] 纯文本查看 复制代码 if(9 < 3){
echo 'TRUE';
}else{
echo 'FALSE';
}
elseif:可以进行多次判断
[PHP] 纯文本查看 复制代码 if(9 < 3){
echo 'TRUE';
}elseif(8 > 3){
echo 'TRUE';
}else{
echo 'FALSE';
}
三元运算符 【?:】与if ~~else差不多
问号前面运算符,问号后面是为真的返回值,冒号后面是为假的返回值
[PHP] 纯文本查看 复制代码 $var = 1 > 2 ? '大于' : '小于';
3.循环 【while】【do while】【for】【foreach】
1).while,条件为真则执行代码
[PHP] 纯文本查看 复制代码 while($i < 100){
$i++;
}
2).do while 无论条件为不为真都会执行至少1次的代码
[PHP] 纯文本查看 复制代码 do{
$i++;
}while($i > 1);
3).for 理解为已知次数的循环
[PHP] 纯文本查看 复制代码 // 循环输出1-10
for($i=1;$i <= 10;$i++){
echo $i;
}
4).foreach 提供了遍历数组的简单方法【仅可用于数组与对象】
[PHP] 纯文本查看 复制代码 $a = [1,2,3,4,5];
$b = [
'1' => 'a',
'2' => 'b',
'3' => 'c',
'4' => 'd',
'5' => 'e'
];
// 输出一维数组
foreach($a as $value){
echo $value;
}
// 输出二维数组
foreach($b as $key => $value){
echo "key is $key ,value is $value";
}
4.break,continue,switch
1).break 结束当前 for,foreach,while,do-while 或者 switch 结构的执行。
[PHP] 纯文本查看 复制代码 // 仅输出1
for($i=1;$i<=100;$i++){
if($i == 2){
break;
}
echo $i;
}
2).continue 仅跳出本次循环,停止运行下方的代码,若条件为真,则继续执行循环结构内的代码
[PHP] 纯文本查看 复制代码 // 仅输出1
for($i=1;$i<=100;$i++){
if($i == 2){
break;
}
echo $i;
}
3).switch 类似If,适合用于判断同一变量与不同值的比较
[PHP] 纯文本查看 复制代码 $num = mt_rand(1,3);
switch($num){
case 1:
echo 'This var is 1';
break;
case 2:
echo 'This var is 2';
break;
default:
echo 'This var is 3';
}
5.goto 可以跳转到程序的另一位置,目标位置定义:名称加冒号
[PHP] 纯文本查看 复制代码 // This is a
goto a;
echo 'hello';
a:
echo 'This is a';
官方示例跳出循环:
[PHP] 纯文本查看 复制代码 for($i=0,$j=50; $i<100; $i++) {
while($j--) {
if($j==17) goto end;
}
}
echo "i = $i";
end:
echo 'j hit 17';
[PHP] 纯文本查看 复制代码 // 求[10,1000]内所有能被被7和9中至少一个数整除的整数之个数。
$num = 0;;
for($i=10;$i<=1000;$i++){
if($i%7==0 || $i%9==0){
$num++;
}
}
echo $num; // 236
// 求[101,299]内所有能被2整除但不能同时被3和5整除的整数之和。
$sum = 0;
for($i=101;$i<=299;$i++){
if($i%2==0 && !($i%3 == 0 && $i%5 ==0)){
$sum += $i;
}
}
echo $sum; // 18630
// 求100以内最大的自然数n,使得从1开始的连续n个自然数的倒数之和小于3.5。
$sum = 0;
for($i=1;$i<=100;$i++){
$sum += 1/$i;
if($sum >= 3.5)break;
}
echo $i-1; // 18
// 求100以内最小的自然数n,使得从1开始的连续n个自然数的立方之和大于30000。
$sum = 0;
for($i=1;$i<=100;$i++){
$sum += $i**3;
echo $sum.' | ';
if($sum > 30000)break;
}
echo $i-1; // 18 |