PHP函数
PHP 有超过 1000 个内建的函数,还有自定义函数。
函数是可以在程序中重复使用的语句块。
页面加载时函数不会立即执行。 函数只有在被调用时才会执行。
一、函数的定义和调用
用户定义的函数声明以单词 “function” 开头:
function functionName( 参数1,参数2,……) {//被执行的代码;return 返回值;}
函数名能够以字母或下划线开头(而非数字)。
函数名对大小写不敏感。
在调用函数时需要向函数传递参数,被传入的参数称为实际参数;
函数定义的参数称为形式参数;
二、函数间传递参数
函数间传递参数的形式:
1.按值传递
函数名(实参);//传值,将实参传递给形参
2.按引用传递(传地址)
函数名(&实参);//传值,将实参的地址传递给形参
3.默认参数
定义形参时,可以指定某个参数为可选参数,将可选参数放在参数列表末尾,并指定默认值。
注意:可选参数必须放置参数列表末尾,且必须指定默认值!
三、函数返回值
使用return
语句返回值;
注意:函数定义时不需要声明返回值。
<?phpfunction sum($x,$y) {$z=$x+$y;return $z;}echo "5 + 10 = " . sum(5,10) . "<br>"; //15echo "7 + 13 = " . sum(7,13) . "<br>";//20echo "2 + 4 = " . sum(2,4);//6?>
四、PHP标准函数库
1.变量函数库
一些常用的变量函数:
2.字符串函数
一些重要的字符串函数:
(1)strlen()函数和mb_strlen()函数
返回字符串的长度,以字符计。
语法:strlen(string 字符串 )
但是,一个中文占 3 个字符数。
可以使用mb_strlen()
设置指定编码输出中文字符个数:
<?phpecho mb_strlen("中文字符",'utf-8'); // 输出 4?>
(2)substr()函数
返回子字符串。
语法:string substr (string 原字符串, int start [,int length])
strart
:必须,指定起始位置,从 0 开始。
length
:可选,指定长度。
(3)strstr()函数
截取原字符串中,从包含标识处到结尾的字符。
语法:string strstr (string 原串, string 标识)
<?php$email = 'user@';$domain = strstr($email, '@');echo $domain; ?>
(4)md5()函数
计算字符串的 MD5 散列。
语法:string md5 (string 原串, bool raw_output)
<?phpecho md5("船长"); #输出:a436878ee2927527f007235bbfdcf77c?>
(5)explode()函数
按标识拆分字符串。返回拆分后的数组array
。
语法:explode (string separator, string string [, int limit])
separator
:必须,拆分标识。
string
:必须,原字符串。
limit
:可选。规定所返回的数组元素的数目。
可能的值:
大于 0 - 返回包含最多 limit 个元素的数组。
小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组。
0 - 会被当做 1, 返回包含一个元素的数组。
(6)strpos() 函数
用于检索字符串内指定的字符或文本。
因此,可用于判断字符在字符串中是否存在。
字符串中首字符的位置是 0 而不是 1。
语法:strpos("原来字符串","指定字符串");
如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回FALSE
。
<?phpecho strpos("Hello world!","world"); #输出:6?>
mb_strpos() 按字处理,strpos() 按字符处理。
<?phpecho strpos('开始23测试ceshi', '测试') ;//8echo mb_strpos('开始23测试ceshi', '测试'); //4?>
(7)str_word_count() 函数
对字符串中的单词进行计数。
语法:str_word_count(string);
<?phpecho str_word_count("Hello world!"); // 输出 2?>
(8)str_replace() 函数
用一些字符串替换字符串中的另一些字符。
语法:str_replace("要替换的string","替换后的string","原string");
<?phpecho str_replace("world", "Kitty", "Hello world!"); // 输出 Hello Kitty!?>
(9)输出函数
echo()、print()、printf()……
print_r()
:除打印字符串之外,主要用来打印数组。
<?php$foot = array('苹果', '午餐', '世界');print_r($foot); //Array ( [0] => 苹果 [1] => 午餐 [2] => 世界 )?>
(10)大部分字符串函数
3.日期/时间函数
一些重要的日期/时间函数。
(1)Date() 函数
把时间戳格式化为更易读的日期和时间。
语法
date(format,timestamp);
format
:必需。规定时间戳的格式。
点击此处,查看format字符列表
timestamp
:可选。规定时间戳。默认是当前时间和日期。
注释:时间戳是一种字符序列,它表示具体事件发生的日期和事件。
●获得简单的日期
date()
函数的格式参数是必需的,它们规定如何格式化日期或时间。
一些常用于日期的字符:
d - 表示月里的某天(01-31)
m - 表示月(01-12)
Y - 表示年(四位数)
1 - 表示周里的某天
其他字符,比如“/”, “.” 或 “-”也可被插入字符中,以增加其他格式。
<?phpecho "今天是 " . date("Y/m/d") . "<br>";echo "今天是 " . date("Y.m.d") . "<br>";echo "今天是 " . date("Y-m-d") . "<br>";echo "今天是 " . date("l");?>
●自动版权年份
<?phpecho © -<?php echo date("Y")?>
●获得简单的时间
常用于时间的字符:
h - 带有首位零的 12 小时小时格式
i - 带有首位零的分钟
s - 带有首位零的秒(00 -59)
a - 小写的午前和午后(am 或 pm)
<?phpecho "现在时间是 " . date("h:i:sa");?>
(2)date_default_timezone_set()函数
设置时区。
date_default_timezone_set("Asia/Shanghai");
(3) mktime()函数
返回日期的 Unix 时间戳。Unix 时间戳包含 Unix 纪元(1970 年 1 月 1 日 00:00:00 GMT)与指定时间之间的秒数。
语法:mktime(hour,minute,second,month,day,year);
<?php$d=mktime(9, 12, 31, 6, 10, );echo "创建日期是 " . date("Y-m-d h:i:sa", $d);//输出:创建日期是 -06-10 09:12:31am?>
(4)strtotime()函数
用于把字符串转换为 Unix 时间。
语法:strtotime(time,now);
<?php$d=strtotime("10:38pm April 15 ");echo "创建日期是 " . date("Y-m-d h:i:sa", $d);//输出:创建日期 -04-15 10:38:00pm$d=strtotime("tomorrow");echo date("Y-m-d h:i:sa", $d) . "<br>";//输出:-10-12 12:00:00am$d=strtotime("next Saturday");echo date("Y-m-d h:i:sa", $d) . "<br>";//输出:-10-12 12:00:00am$d=strtotime("+3 Months");echo date("Y-m-d h:i:sa", $d) . "<br>";//输出:-01-11 02:17:52pm?>
(5)checkdate() 函数
用于验证格利高里日期(Gregorian date),验证日期的有效性。
语法:checkdate(month,day,year);
<?phpecho checkdate(7, 2, 2118); // 有效日期为 True?>
(6)time()函数
返回当前时间的 Unix 时间戳,并格式化为日期:
<?php$t=time();echo($t . "<br>"); echo(date("Y-m-d",$t));#例如输出:1570775240 -10-11?>