php的函数基本语法
1.1.1 PHP的函数基本语法
函数的英文叫作:function,而function的解释项中有另外一个含义:功能。
函数 就是 功能。调用一个函数就是在调用一个功能。
自定义函数
那我们来学一下自定义函数的语法规定,语法规定如下:
function 函数名([参数名1[=值1], 参数名2[=值2], 参数名n[=值n]]) { 函数中的功能体 [return 返回值] }
<?php function php_cn(){ echo '好好学习'; } php_cn(); php_cn(); php_cn(); ?>
php_cn这个函数,是不是显示出来了三段:好好学习.
<?php function sum($a,$b){ echo $a+$b; echo '<br />'; echo $b-($a+$b); } sum(3,5); ?>

备注:
1、函数名只能是字母,数字,下划线的组合,并且之间不能包含空格,数字不能放在变量名首位。 2、函数名与变量命名规则一样,但是不同的是:函数名不区分大小写 3、函数体的参数若是定义了,未传参数,代码会报错 4、函数后的参数如果有默认值,参数可以不填,代码也不会报错 5. 函数后的参数可以写多个 6. 函数后如果有默认值和无默认值的参数,通常把无默认值的参数写在最前面 7. 函数体的变量与函数体外的变量没有关系 9. 函数体中若有return,return 后的代码不执行 8. 函数执行完后,return 可把函数体内的值,带带函数体外 9. 函数的执行没有顺序关系,可以在定义处之前的位置调用 10. 函数不能重载。
一、文件包含函数
在实际开发中,常常需要把程序中的公用代码放到一个文件中,使用这些代码的文件只需要包含这个文件即可。这种方法有助于提高代码的重用性,给代码的编写与维护带来很大的便利。在PHP中, 有require、require_once、include、include- once四种方法包含一个文件。
函数 |
包含失败 |
特点 |
Include |
返回一条警告 |
文件继续向下执行。通常用于动态包含 |
Require |
一个致命的错 |
代码就不会继续向下执行。通常包含极为重要的文件,整个代码甭想执行 |
Include_once |
返回一条警告 |
除了原有include的功能以外,它还会做once检测,如果文件曾经已经被被包含过,不再包含 |
Require_once |
一个致命的错 |
除了原的功能一外,会做一次once检测,防止文件反复被包含 |
1,include包含函数的功能。
创建一个functions.php文件,里面写上两个函数:
<?php //functions.php文件 function demo(){ echo 'aaaa'; } function test(){ echo 'cccdddd'; } ?>
在functions.php的同级目录下,我再创建一个user.php文件把functions.php文件包含进来。这样我的函数就可以专门放在functions.php里面,哪儿需要用到这些函数的时候,我就从哪儿包含进来:
<?php //user.php include 'functions.php'; //可以直接调用 demo(); test(); ?>
二、数学常用涵数
函数名 |
描述 |
实例 |
输入 |
输出 |
abs() |
求绝对值 |
$abs = abs(-4.2); //4.2 |
数字 |
绝对值数字 |
ceil() |
进一法取整 |
echo ceil(9.999); // 10 |
浮点数 |
进一取整 |
floor() |
舍去法取整 |
echo floor(9.999); // 9 |
浮点数 |
直接舍去小数部分 |
fmod() |
浮点数取余 |
"$x = 5.7;$y = 1.3;$r = fmod($x, $y);// $r equals 0.5, because 4 * 1.3 + 0.5 = 5.7 " |
两个浮点数,x>y |
浮点余数 |
pow() |
返回数的n次方 |
echo pow(-1, 20); // 1 |
基础数 n次方 |
乘方值 |
round() |
浮点数四舍五入 |
echo round(1.95583, 2);// 1.96 |
一个数值 |
保留小数点后多少位,默认为0 舍入后的结果 |
sqrt() |
求平方根 |
echo sqrt(9); //3 |
被开方的数 |
平方根 |
max() |
求最大值 |
"echo max(1, 3, 5, 6, 7); // 7 echo max(array(2, 4, 5)); // 5" |
多个数字或数组 |
返回其中的最大值 |
min() |
求最小值 |
min |
多个数字或数组 |
返回其中的最小值 |
mt_rand() |
更好的随机数 |
echo mt_rand(0,9);//n |
最小/最大,随机数 |
随机返回范围内的值 |
rand() |
随机数 |
echo rand() |
最小/最大,随机数 |
随机返回范围内的值 |
pi() |
获取圆周率值 |
echo pi(); // 3.1415926535898 |
无 |
获取圆周率 |
三,字符串常用涵数
函数名 |
描述 |
实例 |
trim() |
删除字符串两端的空格或其他预定义字符 |
$str = "\r\nHello World!\r\n"; echo trim($str); |
rtrim() |
删除字符串右边的空格或其他预定义字符 |
$str = "Hello World!\n\n"; echo rtrim($str); |
hop() |
rtrim()的别名 |
同上 |
ltrim() |
删除字符串左边的空格或其他预定义字符 |
"$str = "\r\nHello World!"; echo ltrim($str);" |
dirname() |
回路径中的目录部分(我们把它归在了字符串函数里了) |
echo dirname("c:/testweb/home.php"); |
str_pad() |
把字符串填充为指定的长度 |
$str = "Hello World"; echo str_pad($str,20,"."); |
str_repeat() |
重复使用指定字符串 |
echo str_repeat(".",13); |
str_split() |
把字符串分割到数组中 |
print_r(str_split("Hello")); |
strrev() |
反转字符串 |
echo strrev("Hello World!"); |
wordwrap() |
按照指定长度对字符串进行折行处理 |
"$str = ""An example on a long word is: Supercalifragulistic""; echo wordwrap($str,15);" |
str_shuffle() |
随机地打乱字符串中所有字符 |
echo str_shuffle("Hello World"); |
parse_str() |
将字符串解析成变量 |
"parse_str("id=23&name=John%20Adams",$myArray); print_r($myArray);" |
number_format() |
通过千位分组来格式化数字 |
"echo number_format("1000000"); echo number_format("1000000",2); echo number_format("1000000",2,"","",""."");" |
strtolower() |
字符串转为小写 |
echo strtolower("Hello WORLD!"); |
strtoupper() |
字符串转为大写 |
echo strtoupper("Hello WORLD!"); |
ucfirst() |
字符串首字母大写 |
echo ucfirst("hello world"); |
ucwords() |
字符串每个单词首字符转为大写 |
echo ucwords("hello world"); |
htmlentities() |
把字符转为HTML实体 |
$str = ""John & 'Adams'""; echo htmlentities($str, ENT_COMPAT); |
htmlspecialchars() |
预定义字符转html编码 |
|
nl2br() |
\n转义为 |
echo nl2br("One line.\nAnother line."); |
strip_tags() |
剥去 HTML、XML 以及 PHP 的标签 |
echo strip_tags("Hello world!"); |
addcslashes() |
在指定的字符前添加反斜线转义字符串中字符 |
$str = ""Hello, my name is John Adams." echo $str; echo addcslashes($str,'m');" |
stripcslashes() |
删除由addcslashes()添加的反斜线 |
echo stripcslashes("Hello, \my na\me is Kai Ji\m."); |
addslashes() |
指定预定义字符前添加反斜线 |
$str = "Who's John Adams?";echo addslashes($str); |
stripslashes() |
删除由addslashes()添加的转义字符 |
echo stripslashes("Who\'s John Adams?"); |
quotemeta() |
在字符串中某些预定义的字符前添加反斜线 |
$str = "Hello world. (can you hear me?)"; echo quotemeta($str); |
chr() |
从指定的 ASCII 值返回字符 |
echo chr(052); |
ord() |
返回字符串第一个字符的 ASCII值 |
echo ord("hello"); |
strcasecmp() |
不区分大小写比较两字符串 |
echo strcasecmp("Hello world!","HELLO WORLD!"); |
strcmp() |
区分大小写比较两字符串 |
|
strncmp() |
比较字符串前n个字符,区分大小写 |
|
strncasecmp() |
比较字符串前n个字符,不区分大小写 |
int strncasecmp ( string $str1 , string $str2 , int $len ) |
strnatcmp() |
自然顺序法比较字符串长度,区分大小写 |
int strnatcmp ( string $str1 , string $str2 ) |
strnatcasecmp() |
自然顺序法比较字符串长度,不区分大小写 |
int strnatcasecmp ( string $str1 , string $str2 ) |
chunk_split() |
将字符串分成小块 |
str chunk_split(str $body[,int $len[,str $end]]) |
strtok() |
切开字符串 |
str strtok(str $str,str $token) |
explode() |
使用一个字符串为标志分割另一个字符串 |
array explode(str $sep,str $str[,int $limit]) |
implode() |
同join,将数组值用预订字符连接成字符串 |
string implode ( string $glue , array $pieces ) |
substr() |
截取字符串 |
string substr ( string $string , int $start [, int $length ] ) |
str_replace() |
字符串替换操作,区分大小写 |
mix str_replace(mix $search,,mix $replace,mix $subject[,int &$num]) |
str_ireplace() |
字符串替换操作,不区分大小写 |
mix str_ireplace ( mix $search , mix $replace , mix $subject [, int &$count ] ) |
substr_count() |
统计一个字符串,在另一个字符串中出现次数 |
int substr_count ( string $haystack , string $needle [, int $offset = 0 [, int $length ]] ) |
substr_replace() |
替换字符串中某串为另一个字符串 |
mixed substr_replace ( mixed $string , string $replacement , int $start [, int $length ] ) |
similar_text() |
返回两字符串相同字符的数量 |
int similar_text(str $str1,str $str2) |
strchr() |
返回一个字符串在另一个字符串中开始位置到结束的字符串 |
string strstr ( string $str, string $needle , bool $before_needle ) |
strrchr() |
返回一个字符串在另一个字符串中最后一次出现位置开始到末尾的字符串 |
string strrchr ( string $haystack , mixed $needle ) |
stristr() |
返回一个字符串在另一个字符串中开始位置到结束的字符串,不区分大小写 |
string stristr ( string $haystack , mixed $needle [, bool $before_needle = false ] ) |
strtr() |
转换字符串中的某些字符 |
string strtr ( string $str , string $from , string $to ) |
strpos() |
寻找字符串中某字符最先出现的位置 |
int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) |
stripos() |
寻找字符串中某字符最先出现的位置,不区分大小写 |
int stripos ( string $haystack , string $needle [, int $offset ] ) |
strrpos() |
寻找某字符串中某字符最后出现的位置 |
int strrpos ( string $haystack , string $needle [, int $offset = 0 ] ) |
strripos() |
寻找某字符串中某字符最后出现的位置,不区分大小写 |
int strripos ( string $haystack , string $needle [, int $offset ] ) |
strspn() |
返回字符串中首次符合mask的子字符串长度 |
int strspn ( string $str1 , string $str2 [, int $start [, int $length ]] ) |
strcspn() |
返回字符串中不符合mask的字符串的长度 |
int strcspn ( string $str1 , string $str2 [, int $start [, int $length ]] ) |
str_word_count() |
统计字符串含有的单词数 |
mix str_word_count(str $str,[]) |
strlen() |
统计字符串长度 |
int strlen(str $str) |
count_chars() |
统计字符串中所有字母出现次数(0..255) |
mixed count_chars ( string $string [, int $mode ] ) |
md5() |
字符串md5编码 |
$str = "Hello"; echo md5($str) |
iconv |
|
|
mb_substr |
获取字符串的部分 |
string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] ) |
mb_http_output |
设置/获取 HTTP 输出字符编码 |
mixed mb_http_output ([ string $encoding = mb_http_output() ] ) |
mb_strlen |
获取字符串的长度 |
mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] ) |
iconv |
字符串按要求的字符编码来转换 |
string iconv ( string $in_charset , string $out_charset , string $str ) |
iconv_substr |
截取字符串的部分 |
|
iconv_get_encoding |
获取 iconv 扩展的内部配置变量 |
|
mb_substr_count |
统计字符串出现的次数 |
|
mb_check_encoding |
检查字符串在指定的编码里是否有效 |
|
mb_strrpos |
查找字符串在一个字符串中最后出现的位置 |
|
mb_split |
使用正则表达式分割多字节字符串 |
|
parse_url |
解释URL成为一个数组 |
|
注:mb_* 和iconv_* 他们可以处理多字节字符,例如:中文。
中文主要用的是GBK和utf-8两种编码格式。
GBK和utf-8是两个不同的编码委员会对于汉字进行的编码的标准。
他们规定GBK是双字节,也就是一个汉字占用2Bytes。
utf-8是三字节,一个汉字占用三个字节长度的存储空间。
三、时间信息函数
<?php $mytime = getdate(); echo "年 :".$mytime['year']."\n"; echo "月 :".$mytime['mon']."\n"; echo "日 :".$mytime['mday']."\n"; echo "时 :".$mytime['hours']."\n"; echo "分 :".$mytime['minutes']."\n"; echo "秒 :".$mytime['seconds']."\n"; echo "一个小时中的第几钟 :".$mytime['minutes']."\n"; echo "这是一分钟的第几秒 :".$mytime['seconds']."\n"; echo "星期名称 :".$mytime['weekday']."\n"; echo "月份名称 :".$mytime['month']."\n"; echo "时间戳 :".$mytime[0]."\n"; ?>