- 介绍
- 本地环境安装
- 安装 WNMP 环境
- 代码编辑器选择
- 语法
- 变量与常量
- 常见输出函数
- 数据类型之四种标量类型
- 数据类型之三种复合类型
- 数据类型之两种特殊类型
- Operators:运算符
- 流程控制:条件判断语句
- 流程控制:循环语句
- 流程控制:中止语句
- 函数
- 类和对象:基本概念
- 类和对象:类结构
- 类和对象:面向对象
- 类和对象:三种特殊类
- 类和对象
- 类和对象:Trait
- 类和对象:魔术方法
- 命名空间
- 【实战】PHP表单
-
String
- addcslashes()
- addslashes()
- bin2hex()
- chop()
- chr()
- chunk_split()
- convert_cyr_string()
- convert_uudecode()
- convert_uuencode()
- count_chars()
- crc32()
- crypt()
- echo
- explode()
- fprintf()
- get_html_translation_table()
- hebrev()
- hebrevc()
- hex2bin()
- htmlentities()
- htmlspecialchars()
- htmlspecialchars_decode()
- html_entity_decode()
- implode()
- join()
- lcfirst()
- levenshtein()
- localeconv()
- ltrim()
- md5()
- md5_file()
- metaphone()
- money_format()
- nl2br()
- nl_langinfo()
- number_format()
- ord()
- parse_str()
- printf
- quoted_printable_decode()
- quoted_printable_encode()
- quotemeta()
- rtrim()
- setlocale()
- sha1()
- sha1_file()
- similar_text()
- soundex()
- sprintf()
- sscanf()
- strcasecmp()
- strchr()
- strcmp()
- strcoll()
- strcspn()
- stripcslashes()
- stripos()
- stripslashes()
- strip_tags()
- stristr()
- strlen()
- strnatcasecmp()
- strnatcmp()
- strncasecmp()
- strncmp()
- strpbrk()
- strpos()
- strrchr()
- strrev()
- strripos()
- strrpos()
- strspn()
- strstr()
- strtok()
- strtolower()
- strtoupper()
- strtr()
- str_getcsv()
- str_ireplace()
- str_pad()
- str_repeat()
- str_replace()
- str_rot13()
- str_shuffle()
- str_split()
- str_word_count()
- substr()
- substr_compare()
- substr_count()
- substr_replace()
- trim()
- ucfirst()
- ucwords()
- vfprintf()
- vprintf()
- vsprintf()
- wordwrap()
-
Array
- array()
- array_change_key_case()
- array_chunk()
- array_column()
- array_combine()
- array_count_values()
- array_diff()
- array_diff_assoc()
- array_diff_key()
- array_diff_uassoc()
- array_diff_ukey()
- array_fill()
- array_fill_keys()
- array_filter()
- array_flip()
- array_intersect()
- array_intersect_assoc()
- array_intersect_key()
- array_intersect_uassoc()
- array_intersect_ukey()
- array_keys()
- array_key_exists()
- array_key_first()
- array_key_last()
- array_map()
- array_merge()
- array_merge_recursive()
- array_multisort()
- array_pad()
- array_pop()
- array_product()
- array_push()
- array_rand()
- array_reduce()
- array_replace()
- array_replace_recursive()
- array_reverse()
- array_search()
- array_shift()
- array_slice()
- array_splice()
- array_sum()
- array_udiff()
- array_udiff_assoc()
- array_udiff_uassoc()
- array_uintersect()
- array_uintersect_assoc()
- array_uintersect_uassoc()
- array_unique()
- array_unshift()
- array_values()
- array_walk()
- array_walk_recursive()
- arsort()
- asort()
- compact()
- count()
- current()
- each()
- end()
- extract()
- in_array()
- key()
- key_exists()
- krsort()
- ksort()
- list()
- natcasesort()
- natsort()
- next()
- pos()
- prev()
- range()
- reset()
- rsort()
- shuffle()
- sizeof()
- sort()
- uasort()
- uksort()
- usort()
-
File
- basename()
- chgrp()
- chmod()
- chown()
- clearstatcache()
- copy()
- dirname()
- diskfreespace()
- disk_free_space()
- disk_total_space()
- fclose()
- feof()
- fflush()
- fgetc()
- fgetcsv()
- fgets()
- fgetss()
- file()
- fileatime()
- filectime()
- filegroup()
- fileinode()
- filemtime()
- fileowner()
- fileperms()
- filesize()
- filetype()
- file_exists()
- file_get_contents()
- file_put_contents()
- flock()
- fnmatch()
- fopen()
- fpassthru()
- fputcsv()
- fputs()
- fread()
- fscanf()
- fseek()
- fstat()
- ftell()
- ftruncate()
- fwrite()
- glob()
- is_dir()
- is_executable()
- is_file()
- is_link()
- is_readable()
- is_uploaded_file()
- is_writable()
- is_writeable()
- lchgrp()
- lchown()
- link()
- linkinfo()
- lstat()
- mkdir()
- move_uploaded_file()
- parse_ini_file()
- parse_ini_string()
- pathinfo()
- pclose()
- popen()
- readfile()
- readlink()
- realpath()
- realpath_cache_get()
- realpath_cache_size()
- rename()
- rewind()
- rmdir()
- set_file_buffer()
- stat()
- symlink()
- tempnam()
- tmpfile()
- touch()
- umask()
- unlink()
-
Datetime
- checkdate()
- date()
- date_add()
- date_create()
- date_create_from_format()
- date_date_set()
- date_default_timezone_get()
- date_default_timezone_set()
- date_diff()
- date_format()
- date_get_last_errors()
- date_interval_create_from_date
- date_interval_format()
- date_isodate_set()
- date_modify()
- date_offset_get()
- date_parse()
- date_parse_from_format()
- date_sub()
- date_sunrise()
- date_sunset()
- date_sun_info()
- date_timestamp_get()
- date_timestamp_set()
- date_timezone_get()
- date_timezone_set()
- date_time_set()
- getdate()
- gettimeofday()
- gmdate()
- gmmktime()
- gmstrftime()
- idate()
- localtime()
- microtime()
- mktime()
- strftime()
- strptime()
- strtotime()
- time()
- timezone_abbreviations_list()
- timezone_identifiers_list()
- timezone_location_get()
- timezone_name_from_abbr()
- timezone_name_get()
- timezone_offset_get()
- timezone_open()
- timezone_transitions_get()
- timezone_version_get()
-
Filter
-
HTTP
-
cURL
- curl_close()
- curl_copy_handle()
- curl_errno()
- curl_error()
- curl_escape()
- curl_exec()
- curl_file_create()
- curl_getinfo()
- curl_init()
- curl_multi_add_handle()
- curl_multi_close()
- curl_multi_errno()
- curl_multi_exec()
- curl_multi_getcontent()
- curl_multi_info_read()
- curl_multi_init()
- curl_multi_remove_handle()
- curl_multi_select()
- curl_multi_setopt()
- curl_multi_strerror()
- curl_pause()
- curl_reset()
- curl_setopt()
- curl_setopt_array()
- curl_share_close()
- curl_share_errno()
- curl_share_init()
- curl_share_setopt()
- curl_share_strerror()
- curl_strerror()
- curl_unescape()
- curl_version()
-
PDO
-
PDOStatement
流程控制:条件判断语句
一个完整的脚本程序应该由一系列语句构成。一条语句也许是一个赋值语句、一个条件判断、一个循环、一个函数调用、或者是什么也不做的空语句。语句通常使用分号结束,并且多个语句可使用花括号进行分组,当做一行语句。
在之前的章节中我们已经学习了赋值语句,这章我们开始学习 PHP 的流程控制。
流程控制包括条件判断(if
、else
、elseif/else if
、switch
)、循环(while
、do-while
、for
、foreach
)和中止循环(break
、continue
、return
)等。
下面我们来看看条件判断语句。
条件判断语句允许程序按照不同的情况执行不同的动作。在PHP中有以下几种条件语句的组合:
if
:如果条件为真,则执行if
部分的代码;if...else
:如果条件为真,则执行if
部分的代码;条件为假,则执行else
部分的代码;if...elseif...else
:根据条件的不同执行不同的代码;switch
:根据结果执行符合条件的代码。
if语句
if
语句用于只有当指定条件成立时执行的情况,示例代码如下:
<?php
// 1.条件判断语句
$value = 18;
$expression = $value > 9;
if($expression) {
// $expression 值为true时执行该段代码
echo '条件为真',"\n";
}
if...else语句
if...else
语句用于当指定条件成立时执行一块代码,不成立时执行另一块代码的情况,示例代码如下:
<?php
$value = 8;
$expression = $value > 9;
if($expression) {
// $expression 值为true时执行该段代码
echo '条件为真',"\n";
} else {
// $expression 值为false时执行该段代码
echo '条件为假',"\n";
}
// 输出:条件为假
if...elseif...else语句
if...elseif...else
语句用于在多个条件下分别执行不同代码块的情况,示例代码如下:
<?php
$age = 24;
$online = 4;
if($age < 18) {
// ($age < 18) 条件成立时执行
echo '该用户未成年!禁止注册游戏!',"\n";
} elseif ($age >= 18 && $online <= 3) {
// ($age >= 18 && $online <= 3) 条件成立时执行
echo '该用户已成年且在线时长小于3小时,给予注册',"\n";
} else {
// 以上条件都不成立时执行
echo '该用户在线时长超过三小时,禁止登录!',"\n";
}
// 输出:该用户在线时长超过三小时,禁止登录!
switch语句
switch
语句用于有选择地执行不同的代码的情况,也适用于多个类似条件的if...elseif...else
语句的替换。示例代码如下:
<?php
// switch 语句可以避免冗长的if...elseif代码块
$score = 78;
switch($score) {
case $score < 60:
echo '该生不及格!',"\n";
break;
case $score >= 60 && $score < 80:
echo '该生成绩良好',"\n";
break;
case $score >= 80 && $score < 100:
echo '该生成绩优秀!',"\n";
break;
default:
echo '你考了满分!恭喜!',"\n";
}
// 输出:该生成绩良好
语法说明
从以上示例代码可以看出,if
类语法都很简单。形如:(expression 表示条件表达式)
if(expression)
// 代码块
稍微复杂一点,加了一个条件不成立时的选择,形如:
if(expression)
// 条件 expression 为真时执行
else
// 条件 expression 不为真时执行
再复杂一点,多个条件限制,形如:
if(expression)
// 条件 expression 为真时执行
elseif(expression2)
// 条件 expression2 为真时执行
elseif(expression3)
// 条件 expression3 为真时执行
else
// 以上条件都不成立时执行
而switch
的语法稍显复杂,形如:
switch(value) {
case label1:
// 条件 value == label1 为真时执行
break;
case label2:
// 条件 value == label2 为真时执行
break;
case label3:
// 条件 value == label3 为真时执行
break;
default:
// 以上条件都不符合时执行
}
其中value
为与后面的case
子句比较的表达式(通常是一个变量),value
从上至下对每个case
子句的条件label
比较,如果条件为真,则执行该case
子句,直到switch
代码段结束或者遇到第一个break
语句为止。
如果不在case
的语句段的最后加上break
的话,PHP 将继续向下执行。例如上方的switch
示例代码改为下方代码,看看会输出什么:
<?php
$score = 78;
switch($score) {
case $score < 60:
echo '该生不及格!',"\n";
case $score >= 60 && $score < 80:
echo '该生成绩良好',"\n";
case $score >= 80 && $score < 100:
echo '该生成绩优秀!',"\n";
default:
echo '你考了满分!恭喜!',"\n";
}
/* 输出:
该生成绩良好
该生成绩优秀!
你考了满分!恭喜!
*/
当然我们还有一个default
子句没讲到。default
子句表示默认行为,即如果之前的条件中没有成立的(也没有被break
中断),则执行default
子句。default
子句是可选的,一般在有默认值的情况下使用。
条件判断语句只有这些,示例代码都很简单,实际项目开发中会遇到很多复杂的情况,有时候很困难,但有时候也会很有趣!好的,接下来我们学习流程控制中的循环!