PHP学习第3天,我爱PHP
1.IF如果:结果为真,执行相应语句
[Asm] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
// 写法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] 纯文本查看 复制代码
?
1
2
3
4
5
if(9 < 3){
echo ‘TRUE’;
}else{
echo ‘FALSE’;
}
elseif:可以进行多次判断
[PHP] 纯文本查看 复制代码
?
1
2
3
4
5
6
7
if(9 < 3){
echo ‘TRUE’;
}elseif(8 > 3){
echo ‘TRUE’;
}else{
echo ‘FALSE’;
}
三元运算符 【?:】与if ~~else差不多
问号前面运算符,问号后面是为真的返回值,冒号后面是为假的返回值
[PHP] 纯文本查看 复制代码
?
1
$var = 1 > 2 ? ‘大于’ : ‘小于’;
3.循环 【while】【do while】【for】【foreach】
1).while,条件为真则执行代码
[PHP] 纯文本查看 复制代码
?
1
2
3
while($i < 100){
$i++;
}
2).do while 无论条件为不为真都会执行至少1次的代码
[PHP] 纯文本查看 复制代码
?
1
2
3
do{
KaTeX parse error: Expected 'EOF', got '}' at position 6: i++; }̲while(i > 1);
3).for 理解为已知次数的循环
[PHP] 纯文本查看 复制代码
?
1
2
3
4
// 循环输出1-10
for(
i
=
1
;
i=1;
i=1;i <= 10;$i++){
echo $i;
}
4).foreach 提供了遍历数组的简单方法【仅可用于数组与对象】
[PHP] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
$a = [1,2,3,4,5];
b
=
[
′
1
′
=
>
′
a
′
,
′
2
′
=
>
′
b
′
,
′
3
′
=
>
′
c
′
,
′
4
′
=
>
′
d
′
,
′
5
′
=
>
′
e
′
]
;
/
/
输
出
一
维
数
组
f
o
r
e
a
c
h
(
b = [ '1' => 'a', '2' => 'b', '3' => 'c', '4' => 'd', '5' => 'e' ]; // 输出一维数组 foreach(
b=[′1′=>′a′,′2′=>′b′,′3′=>′c′,′4′=>′d′,′5′=>′e′];//输出一维数组foreach(a as $value){
echo KaTeX parse error: Expected 'EOF', got '}' at position 8: value; }̲ // 输出二维数组 fore…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
2
3
4
5
6
7
// 仅输出1
for(
i
=
1
;
i=1;
i=1;i<=100;KaTeX parse error: Expected '}', got 'EOF' at end of input: i++){ if(i == 2){
break;
}
echo $i;
}
2).continue 仅跳出本次循环,停止运行下方的代码,若条件为真,则继续执行循环结构内的代码
[PHP] 纯文本查看 复制代码
?
1
2
3
4
5
6
7
// 仅输出1
for(
i
=
1
;
i=1;
i=1;i<=100;KaTeX parse error: Expected '}', got 'EOF' at end of input: i++){ if(i == 2){
break;
}
echo $i;
}
3).switch 类似If,适合用于判断同一变量与不同值的比较
[PHP] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
n
u
m
=
m
t
r
a
n
d
(
1
,
3
)
;
s
w
i
t
c
h
(
num = mt_rand(1,3); switch(
num=mtrand(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] 纯文本查看 复制代码
?
1
2
3
4
5
// This is a
goto a;
echo ‘hello’;
a:
echo ‘This is a’;
官方示例跳出循环:
[PHP] 纯文本查看 复制代码
?
1
2
3
4
5
6
7
8
for(
i
=
0
,
i=0,
i=0,j=50; $i<100; KaTeX parse error: Expected '}', got 'EOF' at end of input: i++) { while(j–) {
if($j==17) goto end;
}
}
echo “i = $i”;
end:
echo ‘j hit 17’;
[PHP] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// 求[10,1000]内所有能被被7和9中至少一个数整除的整数之个数。
n
u
m
=
0
;
;
f
o
r
(
num = 0;; for(
num=0;;for(i=10;
i
<
=
1000
;
i<=1000;
i<=1000;i++){
if($i%70 || $i%90){
$num++;
}
}
echo $num; // 236
// 求[101,299]内所有能被2整除但不能同时被3和5整除的整数之和。
s
u
m
=
0
;
f
o
r
(
sum = 0; for(
sum=0;for(i=101;
i
<
=
299
;
i<=299;
i<=299;i++){
if(
i
i%2==0 && !(
ii%3 == 0 && $i%5 ==0)){
$sum += $i;
}
}
echo $sum; // 18630
// 求100以内最大的自然数n,使得从1开始的连续n个自然数的倒数之和小于3.5。
s
u
m
=
0
;
f
o
r
(
sum = 0; for(
sum=0;for(i=1;
i
<
=
100
;
i<=100;
i<=100;i++){
s
u
m
+
=
1
/
sum += 1/
sum+=1/i;
if($sum >= 3.5)break;
}
echo $i-1; // 18
// 求100以内最小的自然数n,使得从1开始的连续n个自然数的立方之和大于30000。
s
u
m
=
0
;
f
o
r
(
sum = 0; for(
sum=0;for(i=1;
i
<
=
100
;
i<=100;
i<=100;i++){
$sum += $i**3;
echo
s
u
m
.
′
∣
′
;
i
f
(
sum.' | '; if(
sum.′∣′;if(sum > 30000)break;
}
echo $i-1; // 18