函数列表
函数名称 | 说明 | 语法 |
array() | 创建数组。 | array(value1,value2,value3,etc.); |
array_change_key_case() | 函数将数组的所有的键都转换为大写字母或小写字母。 | array_change_key_case(array,case); (case:CASE_LOWER | CASE_UPPER) |
array_chunk() | 函数把数组分割为新的数组块。 | array_chunk(array,size,true|false); |
array_column() | 返回输入数组中某个单一列的值。 | array_column(array,column_key,index_key); |
array_combine() | 函数通过合并两个数组来创建一个新数组,其中的一个数组是键名,另一个数组的值为键值。 | array_combine(keys,values); |
array_count_values() | 用于统计数组中所有值出现的次数。函数对数组中的所有值进行计数,相同的进行汇总。 | array_count_values(array) |
array_diff() | 比较数组,返回差集(只比较键值)。返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值。 | array_diff(array1,array2,array3...); |
array_diff_assoc() | 比较数组,返回差集(比较键名和键值)。 | array_diff_assoc(array1,array2,array3...); |
array_diff_key() | 比较两个(或更多个)数组的键名 ,并返回差集。 | array_diff_key(array1,array2,array3...); |
array_diff_uassoc() | 比较两个数组的键名和键值(使用用户自定义函数来比较键名),并返回差集 | array_diff_uassoc(array1,array2,array3...,myfunction); |
array_diff_ukey() | 比较两个数组的键名(使用用户自定义函数比较键名),并返回差集 | array_diff_ukey(array1,array2,array3...,myfunction); |
array_filter() | 用回调函数过滤数组中的元素,返回按用户自定义函数过滤后的新数组 | array_filter(array,callbackfunction); |
array_flip() | 交换数组中的键和值 | array_flip(array); |
array_intersect() | 比较两个(或更多个)数组的键值,并返回交集。 | array_intersect(array1,array2,array3...); |
array_key_exists() | 检查给定的键名或索引是否存在于数组中 | array_key_exists(key,array) |
array_keys() | 返回数组中所有元素的键名 | array_keys(array,value,strict) |
array_map() | 将回调函数作用到给定数组的元素上,返回用户自定义函数作用后的数组 | array_map(myfunction,array1,array2,array3...) |
array_merge() | 把一个或多个数组合并为一个数组。 | array_merge(array1,array2,array3...) |
array_multisort() | 对多个数组或多维数组进行排序 | array_multisort(array1,sorting order,sorting type,array2,array3...) |
array_pop() | 数组数据的出栈 | array_pop(array) |
array_push() | 数组数据的进栈 | array_push(array,value1,value2...) |
array_rand() | 丛数组中随机选出一个或多个元素并返回 | array_rand(array,number) |
array_reverse() | 返回数组中所有元素的键名 | array_reverse(array,preserve) |
array_search() | 在数组中搜索某个键值,并返回对应的键名。 | array_search(value,array,strict) |
array_shift() | 删除数组中的第一个元素,并返回被删除元素的值。 | array_shift(array) |
array_slice() | 在数组中根据条件取出一段值,并返回。 | array_slice(array,start,length,preserve) |
array_splice() | 从数组中移除选定的元素,并用新元素取代它。该函数也将返回包含被移除元素的数组。 | array_splice(array,start,length,array) |
array_sum() | 返回数组中所有元素值的总和。 | array_splice(array,start,length,array) |
array_unique() | 删除数组中重复的值,只保留第一个元素 | array_unique(array) |
array_values() | 返回数组中所有元素的值 | array_values(array) |
array_walk() | 对数组中每个元素应用回掉函数处理,成功返回TRUE,否则返回FALSE | array_walk(array,myfunction,userdata...) |
arsort() | 关联数组按照键值进行降序排序 | arsort(array,sortingtype) |
asort() | 按照键值对关联数组进行升序排序 | asort(array,sortingtype) |
compact() | 创建一个包含变量名和它们的值的数组 | compact(var1,var2...) |
count() | 返回数组中元素的数目 | count(array,mode(0|1)); |
current() | 取得目前指针位置的内容资料 | current(array) |
each() | 返回数组中当前元素的键值对,并向后移动数组指针到下一个元素位置 | each(array) |
end() | 输出数组中的当前元素和最后一个元素的值 | end(array) |
extract() | 从数组中将变量导入到当前的符号表 | extract(array,extract_rules,prefix) |
foreach() | 遍历数组 | foreach(array as $value) | foreach(array as $key=>$value) |
in_array() | 检查数组中是否存在某个值,在数组中搜索给定的值。 | in_array(search,array,type) |
key() | 读取目前指针所指向资料的索引值。 | key(array) |
krsort() | 将数组按照由大到小的顺序逆向排序,为数组值保留原来的键。 | krsort(array,sortingtype); |
ksort() | 按照键名对数组进行由小到大的排序,为数组值保留原来的键。 | ksort(array,sortingtype); |
list() | 把数组中的值赋给一些变量。 | list(var1,var2...) = array(array1, array2....) |
natcasesort() | 用不区分大小写的自然顺序算法对给定数组中的元素排序。 | natcasesort(array) |
natsort() | 用自然顺序算法对给定数组中的元素排序。 | natsort(array) |
next() | 将数组中的内部指针移动到下一个单元。 | next(array) |
prev() | 将数组中的内部指针倒回一位。 | prev(array) |
reset() | 创建并返回一个包含指定范围的元素的数组。 | range(low,high,step) |
reset() | 将目前指针无条件移至第一个索引位置。 | reset(array) |
rsort() | 对数组的元素按照键值由大到小的逆向排序。 | rsort(array,sortingtype); |
shuffle() | 把数组中的元素按随机顺序重新排列。 | shuffle(array) |
sizeof() | 计算数组中的元素数目或对象中的属性个数。 | sizeof(array,mode); |
sort() | 索引数组进行升序排序。 | sort(array,sortingtype(0,1,2,3,4,5)); |
uasort() | 使用用户自定义的比较函数对数组 $arr 中的元素按键值进行排序 | uasort(array,myfunction); |
uksort() | 使用用户自定义的比较函数对数组 $arr 中的元素按键名进行排序 | uksort(array,myfunction); |
unset() | 取消一个数组中的元素,但不会重建索引。 | unset(array[]) |
usort() | 通过用户自定义的比较函数对数组进行排序。 | usort(array,myfunction); |
函数名称 | 说明 | 语法 |
echo() | 输出字符串。 | echo(strings) |
die() | 输出一条消息,并退出当前脚本。 | die(strings[, string, string, string]) |
htmlentities() | 把字符串转换为HTML实体。 | htmlentities(string, flags,character-set,double_encode) |
htmlspecialchars() | 把一些预定义字符串换为HTML实体。 | htmlspecialchars(string,flags,character-set,double_encode) |
implode() | 把数组元素组合为字符串。 | implode(separator,array) |
ltrim() | 从字符串左侧删除空格或其他预定义字符。 | ltrim(string, charlist*) |
md5() | 讲一个字符串进行MD5计算。 | md5(string,raw) |
nl2br() | 把字符串的每个新航之前添加一个html的换行符。 | nl2br(string,xhtml) |
number_format() | 通过千位分组来格式化数字。 | number_format(number,decimals,decimalpoint,separator) |
print() | 输出一个或多个字符串。print() 函数实际不是一个函数,所以您不必对它使用括号。 | print(strings) |
printf() | 输出格式化的字符串 | printf(format,arg1,arg2,arg++) |
rtrim() | 重字符串的末端开始删除空白字符串或其他域定义字符 | rtrim(string,charlist*) |
sprintf() | 把格式化的字符串写入变量中 | sprintf(format,arg1,arg2,arg++) |
str_pad() | 把字符串填充为新的长度 | str_pad(string,length, pad_string,pad_type) |
strcasecmp() | 比较两个字符串(不区分大小写) | strcasecmp(string1,string2) |
strchr() | 查找字符串在另一字符串中的第一次出现。(strstr() 的别名。)并返回此字符串的其余部分 | strchr(string,search,false|true; |
strnatcasecmp() | 使用"自然"算法来比较两个字符串(不区分大小写) | strnatcasecmp(string1,string2) |
strnatcmp() | 使用"自然"算法来比较两个字符串(区分大小写) | strnatcmp(string1,string2) |
strcmp() | 比较两个字符串(区分大小写) | strcmp(string1,string2) |
stripslashes() | 删除由addslashes()函数添加的反斜杠 | stripslashes(string) |
strip_tags() | 剥去HTML, XML, PHP的标签 | strip_tags(string,allow) |
strrev() | 反转字符串 | strrev(string) |
strtolower() | 把字符串转换为小写 | strtolower(string) |
strtoupper() | 把字符串转换为大写 | strtoupper(string) |
substr() | 返回字符串的一部分 | substr(string,start,length) |
trim() | 从字符串两段删除空白字符串和预定义字符 | trim(string, charlist*) |
ucfirst() | 把字符串中的首字母转换为大写 | ucfirst(string) |
ucwords() | 把字符串中每个单词的首字母转换为大写 | ucwords(string) |
<<<Eof...Eof; | 按照原样,包括换行格式什么的,输出在其内部的内容 | <<<Eof...Eof; |
函数名称 | 说明 | 语法 |
checkdate() | 验证一个格里高里日期。 | checkdate(month,day,year) |
date_default_timezone_get() | 返回脚本中所有日期时间函数所使用的默认时区。 | date_default_timezone_get(void) |
date_default_timezone_set() | 设置用在脚本中所有日期/时间函数的默认时区。 | date_default_timezone_set(timezone) |
date_sunrise() | 返回指定的日期与地点的日出时间。 | date_sunrise(timestamp,format,latitude,longitude,zenith,gmt_offset) |
date_sunset() | 返回指定的日期与地点的日落时间。 | date_sunset(timestamp,format,latitude,longitude,zenith,gmt_offset) |
date() | 格式化一个本地时间/日期。 | date(format,timestamp) |
getdate() | 确定当前时间,返回一个由时间戳组成的时间数组。 | getdate(timestamp) |
gettimeofday() | 获取某一天的具体时间信息的数组。 | gettimeofday(return_float) |
gmdate() | 格式化 GMT/UTC 日期/时间。 | gmdate(format,timestamp) |
gmmktime() | 取得 GMT 日期的 UNIX 时间戳。 | gmmktime(hour,minute,second,month,day,year,is_dst) |
gmstrftime() | 根据本地区域设置格式化 GMT/UTC 时间/日期。 | gmstrftime(format,timestamp) |
idate() | 将本地时间/日期格式化为整数。 | idate(format,timestamp) |
localtime() | 函数返回本地时间(一个数组)。 | localtime(timestamp,is_associative) |
microtime() | 返回当前 Unix 时间戳和微秒数。 | microtime(get_as_float) |
mktime() | 将日期和时间转换成UNIX时间戳。 | mktime(hour,minute,second,month,day,year) |
strftime() | 根据区域设置格式化本地时间/日期。 | strftime(format,timestamp) |
strptime() | 解析由 strftime() 生成的日期/时间。 | strptime(date,format) |
strtotime() | 将任何英文文本的日期时间描述直接解析为UNIX时间戳。 | strtotime(time,now) |
time() | 获取当前的UNIX时间戳。 | time(void) |
函数名称 | 说明 | 语法 |
header() | 向客户端发送原始的 HTTP 报头。 | header(string,replace,http_response_code) |
headers_list() | 返回已发送的(或待发送的)响应头部的一个列表。 | headers_list() |
headers_sent() | 检查 HTTP 标头是否已被发送以及在哪里被发送。 | headers_sent(file,line) |
session_destroy() | 关闭Session | session_destroy() |
session_start() | 开启Session | session_start() |
setcookie() | 向客户端发送一个 HTTP cookie。 | setcookie(name,value,expire,path,domain,secure) |
setrawcookie() | 不对 cookie 值进行 URL 编码,发送一个 HTTP cookie。 | setrawcookie(name,value,expire,path,domain,secure) |
函数名称 | 说明 | 语法 |
basename() | 返回路径中的文件名部分。 | basename(path,suffix) |
chdir() | 把当前的目录改变为指定的目录。 | chdir(directory) |
chgrp() | 改变文件所属的组。 | chgrp(file,group) |
chmod() | 改变文件模式。 | chmod(file,mode) |
chown() | 改变指定文件的所有者。 | chown(file,owner) |
chroot() | 把当前进程的根目录改变为指定的目录。 | chroot(directory) |
clearstatcache() | 清除文件状态缓存。 | clearstatcache() |
closedir() | 关闭指定目录,关闭由 opendir() 函数打开的目录句柄。 | closedir(dir_stream) |
copy() | 拷贝文件。 | copy(source,destination) |
dir() | 打开一个目录句柄,并返回一个对象。这个对象包含三个方法:read() , rewind() 以及 close()。 | dir(directory) |
dirname() | 返回路径中的目录部分。 | dirname(path) |
disk_free_space() | 返回目录中的可用空间。 | disk_free_space(directory) |
disk_total_space() | 返回指定目录的磁盘总大小。 | disk_total_space(directory) |
diskfreespace() | 返回目录中的可用空间。 | diskfreespace(directory) |
fclose() | 关闭一个打开文件。 | fclose(file) |
feof() | 检测是否已到达文件末尾。 | feof(file) |
fflush() | 将缓冲内容输出到文件。 | fflush(file) |
fgetc() | 从打开的文件中返回字符。 | fgetc(file) |
fgetcsv() | 从文件指针中读入一行并解析 CSV 字段。 | fgetcsv(file,length,separator,enclosure) |
fgets() | 从打开的文件中返回一行。 | fgets(file,length) |
fgetss() | 从打开的文件中读取一行并过滤掉 HTML 和 PHP 标记。 | fgetss(file,length,tags) |
file() | 把整个文件读入一个数组中。 | file(path,include_path,context) |
file_exists() | 检查文件或目录是否存在。 | file_exists(path) |
file_get_contents() | 将文件读入字符串。 | file_get_contents(path,include_path,context,start,max_length) |
file_put_contents() | 把一个字符串写入文件中。 | file_put_contents(file,data,mode,context) |
fileatime() | 获取文件的访问时间。 | fileatime(filename) |
filectime() | 获取文件的创建时间。 | fileatime(filename) |
fileperms() | 返回文件或目录的权限。 | fileperms(filename) |
filegroup() | 返回指定文件的组 ID。 | filegroup(filename) |
fileinode() | 返回文件的 inode 编号。本函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。 | fileinode(filename) |
filemtime() | 获取文件的修改时间。 | filemtime(filename) |
filesize() | 返回指定文件的大小。 | filesize(filename) |
fileowner() | 返回文件的所有者。 | fileowner(filename) |
fileperms() | 返回文件或目录的权限。 | fileperms(filename) |
filetype() | 获取文件的类型。 | filetype(filename) |
flock() | 获取文件的类型。 | flock(file,lock,block) |
fnmatch() | 根据指定的模式来匹配文件名或字符串。 | fnmatch(pattern,string,flags) |
fopen() | 打开文件或者 URL。 | fopen(filename,mode,include_path,context) |
fpassthru() | 输出文件指针处的所有剩余数据。 | fpassthru(file) |
fputcsv() | 将行格式化为 CSV 并写入一个打开的文件。 | fputcsv(file,fields,seperator,enclosure) |
fputs() | 写入文件。 | fputs(file,string,length) |
fread() | 读取打开的文件。 | fread(file,length) |
fscanf() | 根据指定的格式对来自打开的文件的输入进行解析。 | fscanf(file,format,mixed) |
fseek() | 移动文件指针到指定的位置。 | fseek(file,offset,whence) |
fstat() | 返回关于打开文件的信息。 | fstat(file) |
ftell() | 在打开文件中的当前位置。 | ftell(file) |
ftruncate() | 把文件截断到指定的长度。 | ftruncate(file,size) |
fwrite() | 写入文件(可安全用于二进制文件)。 | fwrite(file,string,length) |
getcwd() | 返回当前目录。 | getcwd() |
glob() | 返回匹配指定模式的文件名或目录。 | glob(pattern,flags) |
is_dir() | 检查指定的文件是否是目录。 | is_dir(file) |
is_executable() | 判断给定的文件名是否可以执行。 | is_executable(file) |
is_file() | 判断给定的文件名是否为一个正常的文件。 | is_file(file) |
is_link() | 判断指定文件名是否为一个符号连接。 | is_link(file) |
is_readable() | 判断指定文件名是否可读。 | is_readable(file) |
is_uploaded_file() | 判断指定的文件是否是通过 HTTP POST 上传的。 | is_uploaded_file(file) |
is_writable() | 判断指定的文件名是否可写。 | is_writable(file) |
link() | 建立一个硬连接。 | link(target,link) |
linkinfo() | 返回连接的信息。 | linkinfo(path) |
lstat() | 返回关于文件或符号连接的信息。 | >lstat(file) |
mkdir() | 创建目录。 | mkdir(path,mode,recursive,context) |
move_uploaded_file() | 将上传的文件移动到新位置。 | move_uploaded_file(file,newloc) |
opendir() | 打开一个目录句柄,用于打开指定目录。 | opendir(path,context) |
parse_ini_file() | 解析一个配置文件,并以数组的形式返回其中的设置。 | parse_ini_file(file,process_sections) |
pathinfo() | 以数组的形式返回文件路径的信息。 | pathinfo(path,options) |
pclose() | 关闭由 popen() 打开的管道。 | pclose(pipe) |
popen() | 打开进程文件指针。 | popen(command,mode) |
readdir() | 读取指定目录,返回由 opendir() 打开的目录句柄中的条目。 | readdir(dir_stream) |
readfile() | 读取一个文件,并输出到输出缓冲。 | readfile(filename,include_path,context) |
readlink() | 返回符号连接指向的目标。 | readlink(linkpath) |
rewinddir() | 重置由 opendir() 打开的目录句柄。 | rewinddir(dir_stream) |
realpath() | 返回绝对路径。 | realpath(linkpath) |
rename() | 重命名文件或目录。 | rename(oldname,newname,context) |
rewind() | 将文件指针的位置倒回文件的开头。 | rewind(file) |
rmdir() | 删除空的目录。 | rmdir(dir,context) |
scandir() | 返回一个数组,其中包含指定路径中的文件和目录。 | scandir(directory,sort,context) |
set_file_buffer() | 设置打开文件的缓冲大小。 | set_file_buffer(file,buffer) |
stat() | 获取文件大部分属性值。 | stat(file) |
symlink() | 创建符号连接。 | symlink( string $target , string $link ) |
tempnam() | 创建一个具有唯一文件名的临时文件。 | tempnam(dir,prefix) |
tmpfile() | 以读写(w+)模式建立一个具有唯一文件名的临时文件。 | tmpfile() |
touch() | 设置指定文件的访问和修改时间。 | touch(filename,time,atime) |
umask() | 改变当前的 umask。 | umask(mask) |
unlink() | 删除文件。 | unlink(filename,context) |
函数名称 | 说明 | 语法 |
mysql_affected_rows() | 返回前一次 MySQL 操作所影响的记录行数。 | mysql_affected_rows(link_identifier) |
mysql_client_encoding() | 返回客户端使用的默认字符集。 | mysql_client_encoding(link_identifier) |
mysql_close() | 关闭非持久的 MySQL 连接。 | mysql_close(link_identifier) |
mysql_connect() | 打开非持久的 MySQL 连接。 | mysql_connect(server,user,pwd,newlink,clientflag) |
mysql_data_seek() | 移动内部结果的指针。 | mysql_data_seek(data,row) |
mysql_db_name() | 取得 mysql_list_dbs() 调用所返回的数据库名。 | mysql_db_name(list,row,field) |
mysql_errno() | 返回上一个 MySQL 操作中的错误信息的数字编码。 | mysql_errno(connection) |
mysql_error() | 返回上一个 MySQL 操作产生的文本错误信息。 | mysql_error(connection) |
mysql_fetch_array() | 从结果集中取得一行作为关联数组,或数字数组,或二者兼有返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false。 | mysql_fetch_array(data,array_type) |
mysql_fetch_assoc() | 从结果集中取得一行作为关联数组。 | mysql_fetch_assoc(data) |
mysql_fetch_field() | 从结果集中取得列信息并作为对象返回。 | mysql_fetch_field(data,field_offset) |
mysql_fetch_lengths() | 取得一行中每个字段的内容的长度。 | mysql_fetch_lengths(data) |
mysql_fetch_object() | 从结果集(记录集)中取得一行作为对象。 | mysql_fetch_object(data) |
mysql_fetch_row() | 从结果集中取得一行作为数字数组。 | mysql_fetch_row(data) |
mysql_field_flags() | 从结果中取得和指定字段关联的标志。 | mysql_field_flags(data,field_offset) |
mysql_field_len() | 返回指定字段的长度。 | mysql_field_len(data,field_offset) |
mysql_field_name() | 取得结果中指定字段的字段名。 | mysql_field_name(data,field_offset) |
mysql_field_seek() | 将结果集中的指针设定为指定的字段偏移量。 | mysql_field_seek(data,field_offset) |
mysql_field_table() | 返回指定字段所在的表名。 | mysql_field_table(data,field_offset) |
mysql_field_type() | 返回结果集中指定字段的类型。 | mysql_field_type(data,field_offset) |
mysql_free_result() | 释放结果内存。 | mysql_free_result(data) |
mysql_get_client_info() | 返回 MySQL 客户端信息。 | mysql_get_client_info() |
mysql_get_host_info() | 返回 MySQL 主机的信息。 | mysql_get_host_info(connection) |
mysql_get_proto_info() | 返回 MySQL 协议的信息。 | mysql_get_proto_info(connection) |
mysql_get_server_info() | 打开非持久的 MySQL 连接。 | 返回 MySQL 服务器的信息 |
mysql_insert_id() | 返回上一步 INSERT 操作产生的 ID。 | mysql_insert_id(connection) |
mysql_num_fields() | 返回结果集中字段(列)的数。 | mysql_num_fields(data) |
mysql_num_rows() | 返回结果集中行的数目。 | mysql_num_rows(data) |
mysql_query() | 执行一条 MySQL 查询。 | mysql_query(query,connection) |
mysql_real_escape_string() | 转义 SQL 语句中使用的字符串中的特殊字符。 | mysql_real_escape_string(string,connection) |
mysql_result() | 返回结果集中一个字段的值。 | mysql_result(data,row,field) |
mysql_select_db() | 设置活动的 MySQL 数据库。 | mysql_select_db(database,connection) |
mysql_stat() | 返回 MySQL 服务器的当前系统状态。 | mysql_stat(connection) |
mysql_thread_id() | 返回当前线程的 ID。 | mysql_thread_id(connection) |
函数名称 | 说明 | 语法 |
define() | 定义常量。 | define(name, value) |
empty() | 检查一个变量是否为空。 | empty($var) |
is_array() | 检测变量是否是数组。 | is_array($var) |
is_bool() | 检测变量是否是布尔型。 | is_bool($var) |
is_callable() | 检测参数是否为合法的可调用结构。 | is_callable($var) |
is_double() | 检测变量是否是浮点型。 | is_double($var) |
is_float() | 检测变量是否是浮点型。 | is_float($var) |
is_int() | 检测变量是否是整数。 | is_int($var) |
is_integer() | 检测变量是否是整数。 | is_integer($var) |
is_long() | 检测变量是否是整数。 | is_long($var) |
is_null() | 检测变量是否为 NULL。 | is_null($var) |
is_numeric() | 检测变量是否为数字或数字字符串 。 | is_numeric($var) |
is_object() | 检测变量是否是一个对象 。 | is_object($var) |
is_real() | 判断变量类型是否为实数类型 。 | is_real($var) |
is_resource() | 检测变量是否为资源类型 。 | is_resource($var) |
is_scalar() | 检测变量是否是一个标量 。标量变量是指那些包含了 integer、float、string 或 boolean的变量,而 array、object 和 resource 则不是标量。 | is_scalar($var) |
is_string() | 检测变量是否是字符串 。 | is_string($var) |
isset() | 检测变量是否设置。 | isset($var) |
trigger_error() | 创建用户定义的错误消息。 | trigger_error(error_message,error_types) |
unset() | 释放给定的变量, PHP4开始,unset() 不再是一个真正的函数:它现在是一个语句。这样就没有了返回值 | unset($foo); |
函数
函数的参数属于局部变量,所以即使在函数内部改变参数的值,他并不会改变函数外面的值,如果想要函数的一个参数总是通过引用传递,在函数定义中,在参数的前面预先加上符号 “&”就可以实现了。
2. 回调函数:php通常借用最多的就是call_user_func_array(callback_function, array param_arr), 这是一个PHP自带的回调函数,我们可以轻松的将自定义函数及参数执行。
3. 递归函数:即自调用函数在函数体内直接或间接的调用自己通常在此类型的函数中都有一个判断条件来判断是否执行自调用。没有的话,会造成无限循环的错误
format
可选参数
魔法常量
常量名 | 常量值 | 说明 |
PHP_OS | Unix或winnt等 | 执行PHP解析的操作系统名称 |
PHP_VERSION | 5.2.* | 当前PHP服务器的版本 |
TRUE | TRUE | 代表布尔值,真 |
FALSE | FALSE | 代表布尔值,假 |
NULL | NULL | 代表空值 |
DIRECTORY_SEPARATOR | \或/ | 根据操作系统来决定目录的分隔符 |
PATH_SEPARATOR | ;或: | 根据操作系统来决定环境变量的目录了列表分隔符 |
E_ERROR | 1 | 错误,导致PHP脚本运行终止 |
E_WARNING | 2 | 警告,不会导致PHP脚本运行终止 |
E_PARSE | 4 | 解析错误,有程序解析器报告 |
E_NOTICE | 8 | 非关键的错误,例如变量未初始化 |
M_PI | 3.1415926535898 | 数学中的π |
__FILE__ | 当前的文件名 | 在那个文件中使用,就代表哪个文件名称 |
__LINE__ | 当前的行数 | 在代码的哪行使用,就代表哪行的行号 |
__FUNCTION__ | 当前的函数名 | 在哪个函数中使用,就代表哪个函数名 |
__CLASS__ | 当前的类名 | 在哪个类中使用,就代表哪个类的类名 |
__METHOD__ | 当前对象的方法名 | 在对象中的那个方法中使用,就代表这个方法名 |
类
$this 专门用来完成对象内部成员之间的访问,代表“我自己”的意思
构造方法由于构造方法在对象创建时会自动执行一次,所以通常进行初始化任务
析构方法一般在对象销毁前自动调用,一般用来关闭文件,清空结果集
范围 | private | protected | public |
同一个类中 | √ | √ | √ |
类的子类中 | √ | √ | |
所有的外部成员 | √ |
在子类中覆盖从父类中继承过来的方法
抽象类抽象类就是为了更方便子类继承引用的方法
接口是一种特殊的抽象类, 同时接口也可以通过extends来进行扩展
类与接口的连接 使用implements关键字
动态绑定,可以让软件在开发和维护时,达到充分的延伸,让具有继承关系的不同类对象,可以对相同名称的成员函数调用,产生不同的反应效果
正则表达式
正则表达式也称为模式表达式,自身具有一套非常完整的,可以编写模式的语法体系,提供了一种灵活且直观的字符串处理方法。正则表达式通过构建具有特定规则的模式,于输入的字符串信息比较,在特定的函数中使用从而实现字符串的匹配,查找,替换及分割等操作。
函数名称 | 说明 | 语法 |
preg_match() | 进行正则表达式匹配。 | int preg_match( string 正则表达式, string subject [, array matches ] ) |
preg_match_all() | 进行全局正则表达式匹配。 | int preg_match_all( string 正则表达式, string subject, array matches [, int flags ] ) |
preg_replace() | 执行正则表达式的搜索和替换。 | mixed preg_replace(mixed 正则表达式, mixed replacement, mixed subject); |
preg_split() | 用正则表达式分割字符串。 | array preg_split(string 正则表达式, string subject, int [limit]); |
preg_grep() | 返回与模式匹配的数组单元。 | array preg_grep (string 正则表达式, array $input) |
preg_replace_callback() | 用回调函数执行正则表达式的搜索和替换。 | mixed preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit = -1 [, int &$count ]] ) |
原子字符 | 说明 |
\cx | 匹配由x指明的控制字符,例如 \cM 匹配一个Control-M或者回车符,x的值必须为A~Z或a~z之一,否则将c是为一个原意的c字符 |
\f | 匹配一个换页符,等价于\x0c 和 \cL |
\n | 匹配一个换行符, 等价于\x0a 和\cJ |
\r | 匹配一个回车符, 等价于\x0d 和\cM。 |
\t | 匹配一个制表符, 等价于\x09 和\cI。 |
\v | 匹配一个垂直制表符。等价于\x0b 和\cK |
原子字符 | 说明 |
\d | 匹配任意一个十进制数字,等价于[0-9] |
\D | 匹配任意一个十进制数字以外的字符,等价于[^0-9] |
\s | 匹配一个空白字符,等价于[\f\n\r\t\v] |
\S | 匹配除空白字符以外任意一个字符,等价于[^\f\n\r\t\v] |
\w | 匹配任意一个数字,字母或下划线,等价于[0-9A-Za-z] |
\W | 匹配除数字,字母或下划线的任意一个字符,等价于[^0-9A-Za-z] |
[]符号可以定义一组彼此地位平等的原子
利用Perl用于构建正则表达式的具有特殊含义的字符
元字符 | 说明 |
* | 匹配0次,1次或多次其前面的原子 |
+ | 匹配1次或多次其前面的原子 |
? | 匹配0次或1次其前面的原子 |
. | 匹配除换行符外的任意一个字符 |
| | 匹配两个或多个分支选择 |
{n} | 表示其前面的原子恰好出现n次 |
{n, } | 表示其前面的原子出现不少于n次 |
{n, m} | 表示其前面的原子至少出现n次, 最多出现m次 |
^或\A | 匹配输入字符串的开始位置(或在多行模式下行的开头,即紧随一换行符之后^适用于多行) |
$或\Z | 匹配输入字符串的结束位置(或在多行模式下行的结尾,即紧随一换行符之前$适用于多行) |
\b | 匹配单词的边界 |
\B | 匹配除单词边界以外的部分 |
[] | 匹配方括号中指定的任意一个原子 |
[^] | 匹配除方括号中的原子以外的任意一个原子 |
() | 匹配其整体为一个原子,即模式单元,可以理解为有多个原子组成的大原子 |
后向引用, 就是以()标记不光可以做原子,也可以是表达式,所以可以配置相应的缓存编号,引用时,则使用 \1, \2来引用,不想被引用时,在()中使用?:
模式修正符号模式修正符号 | 说明 |
i | 在和模式进行匹配的时候不区分大小写 |
m | 将字符串视为多行,每一行的开头都是^,每一行的结尾都是$ |
s | 模式中的“.”,匹配所有字符,包括换行符 |
x | 模式中的空白忽略不计,除非它已经被转义 |
e | 只用在 preg_replace()函数中,在替换字符串中对逆向引用做正常的替换 |
U | 正则表达式的特点:就是比较“贪婪”,使用该模式修正符可以取消贪婪模式 |
D | 模式中的美元元字符仅匹配目标字符串的结尾,没有此选项时,如果最后一个字符是换行符的话,美元符号也会匹配次字符串之前。如果设定了m修正符则忽略此选项 |