쓰기: 1. "if (조건) {문 블록;} else if (조건) {문 블록;} else {문 블록;}"; 2. "switch (표현식) {case 값 1: 문 블록; break ;...case 값 n: 명령문 블록;break;기본값: 명령문 블록;}".
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
프로그램 개발 과정에서 상황에 따라 다른 코드를 실행해야 하는 경우가 많습니다. 조건부 판단이 필요합니다. PHP에서는 조건부 판단을 위해 if 또는 스위치를 사용할 수 있습니다. 실제 시나리오에 따라 해당 조건문을 선택해야 합니다.
1 if else 문이 실행되는 경우 프로세스 제어의 조건부 판단에 관한 것입니다. 이 명령문이 실행되면 먼저 조건을 판단한 후 판단 결과에 따라 해당 연산을 수행합니다. 문, 즉 세 가지 유형으로 나눌 수 있습니다.
1) if 조건문 if
语句、if...else
语句、if...else if...else
if 문은 가장 간단한 프로세스 제어 유형입니다. 특정 조건이 참인지만 판단하고, 참이면 특정 문장 블록을 실행합니다. 구문 형식은 다음과 같습니다. if (判断条件) {
语句块;
}
if (判断条件) 一条语句;
if 문의 실행 흐름은 아래 그림과 같습니다.
[예제] 배열을 정의하고 if 문을 사용하여 숫자가 짝수인지 확인합니다.<?php $num = 34; if ($num % 2 == 0) { echo '$num ='.$num.', 是偶数!'; } ?>
$num =34, 是偶数!
if 문은 판단 결과가 참인 상황에서만 연산을 수행할 수 있는데, 이는 많은 경우에 충분하지 않으므로 이 형식의 if..else 문이 있습니다. if 판단과 달리 if...else 문은 판단 결과가 참인 상황에 대한 연산을 수행할 뿐만 아니라, 판단 결과가 참이 아닌 상황에 대해서도 해당 연산을 수행할 수 있습니다. else 문은 if 문을 확장하고 if 문의 표현식 값이 FALSE일 때 해당 문을 실행할 수 있습니다. 또 한 가지 주의할 점은 else 문은 if 문의 절이므로 if 문과 함께 사용해야 하며 단독으로 존재할 수 없다는 점입니다.
if...else 문의 구문 형식은 다음과 같습니다.
if (判断条件) { 语句块 1; } else { 语句块 2; }
위 형식에서 "판단 조건"이 true이면 "문 블록 1"이 실행되고, 그렇지 않으면 "문 블록 2"가 실행됩니다. 실행됩니다. "블록 1"과 "블록 2" 모두 여러 문을 포함할 수 있습니다. if 문과 동일하게, "statement block 1"과 "statement block 2" 모두 하나의 문만 포함하는 경우 아래와 같이 중괄호 { }를 생략할 수 있습니다.
if (判断条件) 语句块 1; else 语句块 2;
if...else 문 실행 흐름 아래 그림과 같습니다.
예제] rand() 함수를 사용하여 난수 $num을 생성한 후 해당 난수가 짝수인지 홀수인지 확인합니다.<?php $num = rand(1,31); //生成一个 1~31 之间的随机数 if ($num % 2 == 0) { echo '$num ='.$num.', 是偶数!'; } else { echo '$num ='.$num.', 是奇数!'; } ?>
$num =27, 是奇数!
else if 문은 else 문과 동일하며 if 문을 확장하고 else if 문이 어떤 조건문을 결정할지 결정합니다. 다양한 표현식을 기반으로 실행할 명령문 블록입니다. PHP에서는 두 개의 else if 키워드를 함께 사용할 수도 있습니다(예: elseif). else if 문의 구문 형식은 다음과 같습니다.
if (判断条件 1) { 语句块 1; } else if (判断条件 2) { 语句块 2; } else if (判断条件 3) { 语句块 3; } ...... else if (判断条件 n) { 语句块 n; } else{ 语句块 n+1; }
위 else if 구문에서 첫 번째 "판단 조건 1"이 TRUE이면 두 번째 "판단 조건 1"이면 "문 블록 1" 문이 실행됩니다. " 2"가 TRUE이면 "statement block 2" 명령문이 실행됩니다. 표현식의 조건 중 어느 것도 TRUE가 아닌 경우 else 절의 "statement block n+1" 문이 실행됩니다. 물론 마지막 else 문도 생략할 수 있습니다.
else if 문에서 하나의 표현식만 동시에 TRUE일 수 있습니다. 즉, else if 문에서는 하나의 문 블록만 실행할 수 있습니다. TRUE로 평가되는 표현식이 여러 개 있는 경우 첫 번째 표현식에 해당하는 명령문 블록만 실행됩니다.
if...else if...else if...else 문의 실행 흐름은 아래 그림과 같습니다.
[예시] 우수, 좋음, 중간, 불량 등급을 기준으로 판단합니다.<?php $score = 89; if ($score > 90) { echo '成绩的级别为:优!'; } else if ($score > 70) { echo '成绩的级别为:良!'; } else if ($score > 60) { echo '成绩的级别为:中!'; } else { echo '成绩的级别为:差!'; } ?>
成绩的级别为:良!
2.switch...case...조건문
switch 문은 if...와 유사합니다. else if...else 문은 분기 구조이기도 합니다. if ...else if...else 문은 switch 문보다 더 간결하고 명확합니다. switch 문은 표현식과 여러 케이스 레이블로 구성됩니다. 케이스 레이블 뒤에는 코드 블록이 옵니다. switch 문의 구문 형식은 다음과 같습니다.
switch(表达式){ case 值 1: 语句块 1; break; case 值 2: 语句块 2; break; ... ... case 值 n: 语句块 n; break; default: 语句块 n+1; }
switch 语句根据表达式的值,依次与 case 中的值进行比较,如果不相等,继续查找下一个 case;如果相等,就会执行对应的语句,直到 switch 语句结束或遇到 break 为止。
一般来说,switch 语句最终都有一个默认值 default,如果在前面的 case 中没有找到相符的条件,则执行默认语句,和 else 语句类似。
switch 语句的执行流程如下图所示:
在使用 switch 语句时应该注意以下几点:
和 if 语句不同的是,switch 语句后面表达式的数据类型只能是整型或字符串,不能是 bool 型。通常这个表达式是一个变量名称,虽然 PHP 是弱类型语言,在 switch 后面表达式的变量可以是任意类型数据,但为了保证匹配执行的准确性,最好只使用整型或字符串中的一种类型。
和 if 语句不同的是,switch 语句后面的花括号是必须有的。
case 语句的个数没有规定,可以无限增加。但 case 标签和 case 标签后面的值之间应该有一个空格,值后面必须有一个冒号,这是语法的一部分。
switch 匹配完成以后,将依次逐条执行匹配的分支模块中的语句,直到 switch 结构结束或者遇到了 break 语句才停止执行。所以,如果一个分支语句的后面没有写上 break 语句,程序将会继续执行下一个分支语句的内容。
与 if 语句中的 else 类似,switch 语句中 default 标签直接在后面加上一个冒号,看似没有条件,其实是有条件的,条件就是“表达式”的值不能与前面任何一个 case 标签后的值相等,这时才执行 default 分支中的语句。default 标签和 if 中的 else 子句一样,它不是 switch 语句中必需的,可以省略。
【示例】使用 date() 函数获取当前星期的英文缩写,根据缩写打印今天是星期几,代码如下所示:
<?php $week = date('D'); switch($week){ case 'Mon': echo '星期一'; break; case 'Tue': echo '星期二'; break; case 'Wed': echo '星期三'; break; case 'Thu': echo '星期四'; break; case 'Fri': echo '星期五'; break; case 'Sat': echo '星期六'; break; case 'Sun': echo '星期日'; break; } ?>
运行结果如下:
星期四
推荐学习:《PHP视频教程》
위 내용은 PHP 판단문 작성 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!