이 섹션에서 설명하는 내용
순차 공정 제어
단일 분기
이중 분기
다중 분기
전환
-
용
하는 동안
하는 동안
휴식
계속
goto
머리말
PHP 프로세스 제어 및 기타 언어는 매우 유사하며 여러 가지 상황으로 나누어집니다. 코드의 흐름을 이해하면 코드의 개념을 대략적으로 이해할 수 있으며, 처음에는 코드의 기능과 어떤 결과가 발생할지 이해할 수 있습니다. PHP 프로세스는 크게 순차 프로세스, 분기 프로세스, 순환 프로세스의 두 가지 유형으로 구분됩니다.
순차적 프로세스 제어
순차적 프로세스는 단순히 파서가 PHP 코드를 따르고 한 줄씩 구문 분석한다는 것을 의미합니다. PHP 코드에는 흐름 제어 문이 없으므로 PHP 코드는 순차적으로 실행됩니다. .
$a = 12; $b = 13; $c = 15; $res = $a + $b * $c; echo $res;
위 코드와 마찬가지로 파서는 한 줄씩 구문 분석하고 실행합니다.
분기 프로세스 제어분기 프로세스는 우리 코드에서 특정 상황이 발생했을 때 실행되는 코드입니다. 예를 들어, 특정 상황을 충족하는 경우 PHP의 공통 분기는
- 단일 분기
- 이중 분기
- 다중 브랜치
- 단일 브랜치
우리 코드가 특정 상황과 일치하면 특정 코드를 실행싱글 Branch 분기의 언어 형식은 다음과 같습니다:
if(条件表达式){ //代码块 }
예:
<?php $a = 13; if($a > 12){//$a符合大于12的条件才会执行下面的这句话 echo '$a的值大于12<br>'; } echo '这里是单分支外边'; ......结果..... $a的值大于12 这里是单分支外边Flowchart
단일 분기 if 문 뒤에는 중괄호가 옵니다. . 브랜치의 코드가 실행되면 파서는 계속해서 다음 코드를 구문 분석합니다
Double Branch
위의 변수 $a가 언제 수행되는지 생각해 본 적이 있나요? 조건을 만족하지 않는다면, 아무것도 하지 않는 경우가 대부분입니다. if 괄호 안의 표현식이 만족되지 않을 때, 우리는 보통 이중 분기 구조, 언어 형식을 사용합니다. 예:
if(条件表达式){ //为真时执行的代码 }else{ //为假时执行的代码 }
흐름도:
위 코드에서 $a가 12보다 크지 않으면 else 안의 코드가 실행되고, 그러면 외부 코드가 실행됩니다. if...else는 쌍으로 나타납니다. 그러나 다른 것은 있을 수 없습니다.
다중 브랜치
때때로 듀얼 브랜치가 실행된 후에도 여전히 심사해야 할 브랜치가 있는데 이때 심사가 계속됩니다. , 다중 지점이 사용됩니다. 여러 브랜치에 else가 있을 필요는 없습니다. 기본 구문은 다음과 같습니다.
$a = 6; if($a > 12){ echo '$a的值大于12<br>'; }else{ echo '$a的值小于12' } echo '这里是单分支外边'; ......结果..... $a的值小于12 这里是单分支外边
예:
if(条件表达式){ 语句 }else if(条件表达式){ 语句 }else if(条件表达式){ 语句 }...
흐름도:
위의 흐름도에서 볼 수 있듯이
는 $a가 10보다 크지 않은 경우에만 아래쪽으로 실행됩니다. 그러면 이것이 매우 중요합니다
2개보다 큰가? 그 이상이라면 조건이 만족될 때까지 계속 실행한다. switch
위 if...else에서 if의 조건식은 일반적으로 범위를 나타냅니다($a =와 같은 특정 값을 나타낼 수도 있음). = 2) 그러나 여러 특정 값을 사용하는 경우 위 코드는 매우 중복되어 보일 수 있습니다. 이를 위해서는 스위치를 사용해야 합니다. 스위치는 if...else를 작성하는 또 다른 방법이라고 할 수도 있습니다. switch 문은 동일한 표현식을 사용하는 일련의 if 문과 같습니다. 동일한 변수(또는 표현식)를 여러 다른 값과 비교하고 어떤 값이 같은지에 따라 다른 코드를 실행해야 하는 상황이 많이 있습니다. 이것이 바로
에 대한 스위치 문입니다. 스위치의 기본 구문은 다음과 같습니다:
<?php $a = 3; if($a > 10){ echo '$a 大于10'; }else if($a > 2){ echo '$a 小于等于10并且大于2'; }else{ echo '$a小于等于2'; } .....结果...... $a小于等于10并且大于2
예:
switch(变量/表达式/值){ case 变量/表达式/值: 处理语句; break; case 变量/表达式/值: 处理语句; break; case 变量/表达式/值: 处理语句; break; default: 上面的情况都不满足执行的语句; break; }
흐름도:
스위치 문의 개념은 if와 매우 유사합니다. 스위치 괄호 안의 값은 우리가 판단하려는 값이 케이스 뒤에 있는 값과 같은지 여부입니다. 동일하게 Case 아래의 문을 실행합니다. 서로 다를 경우 Next Case 문을 실행합니다.
case 문 뒤에는 콜론이 있으니 주의하세요. ; 모든 Case가 실행되고 조건에 맞는 값이 없으면 default의 문이 실행됩니다.
위에서 각 case 문 아래에 break가 있는 것을 볼 수 있습니다. 이는 파서가 break를 만나면 자동으로 스위치에서 빠져나오므로 다음 Case는 실행되지 않습니다. . (같은 일이 발생하면 아래쪽으로 실행되지 않습니다.) 스위치 관련 주의 사항:
case 문의 값이 스위치 표현식의 값과 일치하면 PHP는 해당 명령문을 실행하기 시작합니다.
当执行case语句后,遇见break就退出,但是如果没有break,则一直运行下去,直到遇见break或switch执行结束。
defaule里面的语句是它匹配了任何和其他case都不匹配的情况。
case后面的类型可以使整型,浮点型,字符串,布尔值,array,null,通常情况下,我们一般用整数 或字符串。
循环流程控制
在开发中我们有时会有这样的需求,我们需要打印一句话100次,这时候用单纯的顺序流程控制就会很麻烦,但是也能做,但如果是一万次呢…这时候就需要我们想另一种解决思路,我们能不能利用循环,循环的输出一句话,并且控制循环次数,这样我们就会很顺利的输出我们想要的结果。
for循环结构
for循环在我们的开发中是最常见和最常用到的循环,这种循环是在我们知道循环次数的时候,首选的结构,像上面的一万次,我们已经知道了需要循环一万次。学习for循环最主要的是看懂for循环的执行流程。按着for的执行流程,我们可以清晰的知道for循环是在哪里退出,在哪里需要在循环。
语法结构:
for(循环初始值,循环初始值...;循环条件;增量,增量){ 语句循环体; }
示例:
for($i = 0; $i < 10; $i++){ echo '这是for循环<br>'; } ....结果.... echo 这是for循环(十次);
流程图:
在上面的流程图中我们可以看到for循环的执行顺序,for循环只有在为假的时候跳出循环。
for循环的执行顺序:
先执行变量初始化$a = 0;在整个for循环中,这句话只执行一次。
判断$a的值是否小于10,如果小于10,执行for循环里面的语句,如果不小于则退出循环。
当执行完for循环里面的语句,执行增量表达式,$a++(看前面的递增、递减运算符),
当$a增加1之后再进行条件判断,$a是否小于10,如果小于10,执行for循环里面的语句,如果不小于则退出循环。
当$a不小于10的时候,直接跳出循环,执行for循环后面的语句。
明白for循环的执行顺序非常重要,可以看着案列,自己动手画一画。
for循环打印99乘法表
for循环是可以嵌套使用的,当进行嵌套的时候,外面的循环执行一次,里面的for循环执行完才执行外面。
<?php for($i = 1; $i <= 9; $i++){ //控制乘法表的层数,第一层是1,第二层是2,一直到9; for($j = 1; $j <= $i; $j++){ //每一层的个数,第一层是1 * 1 = 1;每一层的最大的不能大于层数,像第一层,不能出现1 * 2 = 2; echo $i . '*' . $j . '=' . $i * $j . ' '; //进行显示 } echo '<br>'; //一层显示完后,记着换行。 }
结果:
99乘法表,按照for循环的流程一步步执行,但是for循环的判断条件需要找准,也就是for循环的循环次数。
while循环结构
当我们的循环次数不能确定的时候,这时候for循环就显得有些无力,这时候我们可以选择while循环。while循环当没有特定条件的时候,就是一个死循环,也就是解析器会一直执行,永远不会停止,所以我们在用while循环的时候,注意while循环跳出循环的条件。
while循环的语法结构:
while(循环条件){ 循环体语句; }
示例:
<?php $a = 12; while($a < 20){ echo '$a的值是' . $a . '<br>'; $a++; } ....结果.... echo $a的值是12....
流程图:
上面的代码,初始值$a是在while的外面,我们可能不知道需要循环多少次,但是我们知道当$a的值小于20就一直循环,但是我们不能让$a的值不变,如果$a的值不变,while循环就是一个死循环。所以在循环体里面有一个$a的增长语句。
do…while循环控制
do…while和while循环大致一样,但是有一点不同,do…while循环的循环体是在do里面写着,判断条件是在while里面写着,并且do…while不管是否满足while里面的条件,都会执行一次do里面的循环体。
do...while语法结构: do{ 循环体语句; }while(判断条件);
示例:
<?php $a = 12; do{ echo '$a的值是' . $a . '<br>'; $a++; }while($a < 20);
流程图:
从流程图中可以看到是先执行循环体,在进行判断。
当不满足条件后跳出循环。
流程控制中用到的关键字
break
break的作用是当满足某种情况时,不想再循环了,跳出当前循环,也就是结束掉当前的循环,不管你有没有满足最初条件,强制退出。
break 可以结束 for, while,do-while 或者 switch 结构的执行 ,同时break 可以接受一个可选的数字参数来决定跳出几重循环(用于多重循环)。
示例:
<?php for($i = 0; $i < 10; $i++){ if($i == 5){ break; } echo '$i的值是' . $i . '<br>'; }
结果:
流程图:
从结果中可以看到,当$i的值等于5的时候,就break,跳出循环,所以输出语句输出了5句。
continue
continue在循环结构中用来跳过本次循环,然后接着进行判断是否满足条件。注意:是跳出单次循环,而break是跳出整个循环结构。
continue 可接受一个可选的数字参数来决定跳过几重循环到循环结尾
示例:
<?php for($i = 0; $i < 10; $i++){ if($i == 5){ continue; } echo '$i的值是' . $i . '<br>'; }
结果:
流程图:
在流程图中可以看到当满足$i == 5的时候,continue跳出本次循环,这时下面的输出就不能输出,所以看到在结果中没有输出$i == 5这种情况。
goto
goto操作符可以用来跳转到程序中的另一位置。该目标位置可以用目标名称加上冒号来标记。
示例:
<?php $a = 12; goto A; echo '这是第一个位置'; A: echo '这是第二个位置'; .....结果...... 这是第二个位置
可以看到其中一个输出语句没有输出,这是因为goto跳转到了A这个位置,注意A后面是一个冒号:
同时goto可以使用在循环中,这样也可以跳出循环。
使用注意事项:
使用注意事项: PHP中的goto有一定限制,只能在同一个文件和作用域
中跳转,也就是说你无法跳出一个函数或类方法,也无法跳入到另一个函数。常见的用法是用来跳出循环或者switch,可以代替多层的break
总结
流程控制,在开发中不可避免的,我们写的代码总是在流程控制中执行,明白了PHP的流程控制也就明白了代码的整体框架。同时for循环while循环等自己可以进行加深,不管什么编程语言,只有自己不停地敲代码才会明白其中的道理。所以要多敲代码,多练习。
以上就是PHP基础教程四之流程控制的内容,更多相关内容请关注PHP中文网(www.php.cn)!

tomodifyDatainAphPessess, startSessionstession_start (), 그런 다음 $ _sessionToset, modify, orremovevariables.

배열은 PHP 세션에 저장할 수 있습니다. 1. 세션을 시작하고 session_start ()를 사용하십시오. 2. 배열을 만들고 $ _session에 저장하십시오. 3. $ _session을 통해 배열을 검색하십시오. 4. 세션 데이터를 최적화하여 성능을 향상시킵니다.

PHP 세션 쓰레기 수집은 만료 된 세션 데이터를 정리하기위한 확률 메커니즘을 통해 트리거됩니다. 1) 구성 파일에서 트리거 확률 및 세션 수명주기를 설정합니다. 2) CRON 작업을 사용하여 고재 응용 프로그램을 최적화 할 수 있습니다. 3) 데이터 손실을 피하기 위해 쓰레기 수집 빈도 및 성능의 균형을 맞춰야합니다.

PHP의 사용자 세션 활동 추적은 세션 관리를 통해 구현됩니다. 1) Session_start ()를 사용하여 세션을 시작하십시오. 2) $ _session 배열을 통해 데이터를 저장하고 액세스하십시오. 3) 세션 _destroy ()를 호출하여 세션을 종료합니다. 세션 추적은 사용자 행동 분석, 보안 모니터링 및 성능 최적화에 사용됩니다.

데이터베이스를 사용하여 PHP 세션 데이터를 저장하면 성능 및 확장 성을 향상시킬 수 있습니다. 1) 세션 데이터를 저장하기 위해 MySQL 구성 : php.ini 또는 php 코드에서 세션 프로세서를 설정하십시오. 2) 사용자 정의 세션 프로세서 구현 : 데이터베이스와 상호 작용하기 위해 열린, 닫기, 읽기, 쓰기 및 기타 기능을 정의합니다. 3) 최적화 및 모범 사례 : 인덱싱, 캐싱, 데이터 압축 및 분산 스토리지를 사용하여 성능을 향상시킵니다.

phpsessionstrackuserdataacrossmultiplepagerequestsususingauniqueIdStoredInAcookie.here'showtomanagetheMeftically : 1) STARTASESSIONSTART_START () andSTAREDATAIN $ _SESSION.2) RegenerATERATESSESSIDIDAFTERLOGINWITHSESSION_RATERATERATES (True) TopreventSES

PHP에서 세션 데이터를 통한 반복은 다음 단계를 통해 달성 할 수 있습니다. 1. Session_start ()를 사용하여 세션을 시작하십시오. 2. $ _session 배열의 모든 키 값 쌍을 통해 Foreach 루프를 통과합니다. 3. 복잡한 데이터 구조를 처리 할 때 is_array () 또는 is_object () 함수를 사용하고 print_r ()를 사용하여 자세한 정보를 출력하십시오. 4. Traversal을 최적화 할 때 페이징을 사용하여 한 번에 많은 양의 데이터를 처리하지 않도록 할 수 있습니다. 이를 통해 실제 프로젝트에서 PHP 세션 데이터를보다 효율적으로 관리하고 사용하는 데 도움이됩니다.

이 세션은 서버 측 상태 관리 메커니즘을 통해 사용자 인증을 인식합니다. 1) 세션 생성 및 고유 ID의 세션 생성, 2) ID는 쿠키를 통해 전달됩니다. 3) ID를 통해 서버 저장 및 세션 데이터에 액세스합니다. 4) 사용자 인증 및 상태 관리가 실현되어 응용 프로그램 보안 및 사용자 경험이 향상됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

드림위버 CS6
시각적 웹 개발 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는
