自定义函数的语法规定
函数的英文叫作:function
,而function的解释项中有另外一个含义:功能。
函数就是功能。调用一个函数就是在调用一个功能。
自定义函数的语法规定如下:
function 函数名([参数名1[=值1], 参数名2[=值2], 参数名n[=值n]])
{
函数中的功能体
[return 返回值]
}
<?php
function php_cn(){
echo '好好学习'.PHP_EOL;
}
php_cn();
php_cn();
php_cn();
?>
输出结果为:
好好学习
好好学习
好好学习
备注:
- 函数名只能是字母,数字,下划线的组合,并且之间不能包含空格,数字不能放在变量名首位。
- 函数名与变量命名规则一样,但是不同的是:函数名不区分大小写。
- 函数体的参数若是定义了,未传参数,代码会报错。
- 函数后的参数如果有默认值,参数可以不填,代码也不会报错。
- 函数后的参数可以写多个。
- 函数后如果有默认值和无默认值的参数,通常把无默认值的参数写在最前面。
- 函数体的变量与函数体外的变量没有关系。
- 函数体中若有return,return后的代码不执行。
- 函数执行完后,return 可把函数体内的值,带到函数体外。
- 函数的执行没有顺序关系,可以在定义处之前的位置调用。
- 函数不能重载。
超全局变量
全局变量名 | 功能说明 |
---|---|
$_COOKIE | 得到会话控制中cookie传值 |
$_SESSION | 得到会话控制中session的值 |
$_FILES | 得到文件上传的结果 |
$_GET | 得到get传值的结果 |
$_POST | 得到post传值的结果 |
$_REQUEST | 即能得到get的传值结果,也能得到Post传值的结果 |
<html>
<head>
<title>超全局数组实验</title>
</head>
<body>
<!--先用POST来实验,以后你可以改成GET哟 -->
<form action="glob.php" method="post">
<input type="text" name="hongniu" /><br />
<input type="submit" value="提交" />
</form>
</body>
</html>
我们将html的内容通过form表单提交给了 glob.php 页面,我们现在来写glob.php:
<?php
function demo(){
echo $_POST['hongniu'];
}
demo();
?>
文件包含函数
在实际开发中,常常需要把程序中的公用代码放到一个文件中,使用这些代码的文件只需要包含这个文件即可。
这种方法有助于提高代码的重用性,给代码的编写与维护带来很大的便利。在PHP中, 有 require、require_once、include、include-once
四种方法包含一个文件。
函数 | 包含失败 | 特点 |
---|---|---|
Include | 返回一条警告 | 文件继续向下执行。通常用于动态包含 |
Require | 一个致命的错 | 代码就不会继续向下执行。通常包含极为重要的文件,整个代码甭想执行 |
Include_once | 返回一条警告 | 除了原有include的功能以外,它还会做once检测,如果文件曾经已经被被包含过,不再包含 |
Require_once | 一个致命的错 | 除了原有的功能以外,会做一次once检测,防止文件反复被包含 |
1. include包含函数的功能
创建一个functions.php文件,里面写上两个函数:
<?php
//创建一个functions.php文件,里面写上两个函数:
//functions.php文件
function demo()
{
echo 'aaaa'.PHP_EOL;
}
function test()
{
echo 'bbbb';
}
?>
在 functions.php 的同级目录下,我再创建一个 user.php 文件把 functions.php 文件包含进来。这样我的函数就可以专门放在 functions.php 里面,哪儿需要用到这些函数的时候,我就从哪儿包含进来:
<?php
//user.php
include 'functions.php';
//可以直接调用
demo();
test();
?>
输出结果为:
aaaa
bbbb
数学常用函数
函数名 | 描述 | 实例 | 输入 | 输出 |
---|---|---|---|---|
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 | 多个数字或数组 | 返回其中的最小值 |
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);” |
ltrim() | 删除字符串左边的空格或其他预定义字符 | “$ str = “\r\nHello World!”; echo ltrim($str);” |
str_split() | 把字符串分割到数组中 | print_r(str_split(“Hello”)); |
strtolower() | 字符串转为小写 | echo strtolower(“Hello WORLD!”); |
strtoupper() | 字符串转为大写 | echo strtoupper(“Hello World!”); |
ucfirst() | 字符串首字母大写 | echo ucfirst(“hello world!”); |
ucwords() | 字符串每个单词首字符转为大写 | echo ucwords(“hello world!”); |
chr() | 从指定的 ASCII 值返回字符 | echo chr(052); |
ord() | 返回字符串第一个字符的 ASCII值 | echo ord(“hello”); |
md5() | 字符串md5编码 | s t r = " H e l l o " ; e c h o m d 5 ( str = "Hello"; echo md5( str="Hello";echomd5(str) |
中文主要用的是GBK和UTF-8两种编码格式。
GBK和UTF-8是两个不同的编码委员会对于汉字进行的编码的标准。
他们规定GBK
是双字节,也就是一个汉字占用2
Bytes。
UTF-8
是三字节,1 个汉字占用3
个字节长度的存储空间。
时间信息函数
<?php
$my_time = getdate();
echo "年 :" . $my_time['year'] . "\n";
echo "月 :" . $my_time['mon'] . "\n";
echo "日 :" . $my_time['mday'] . "\n";
echo "时 :" . $my_time['hours'] . "\n";
echo "分 :" . $my_time['minutes'] . "\n";
echo "秒 :" . $my_time['seconds'] . "\n";
echo "一个小时中的第几钟 :" . $my_time['minutes'] . "\n";
echo "这是一分钟的第几秒 :" . $my_time['seconds'] . "\n";
echo "星期名称 :" . $my_time['weekday'] . "\n";
echo "月份名称 :" . $my_time['month'] . "\n";
echo "时间戳 :" . $my_time[0] . "\n";
?>
输出结果为:
年 :2020
月 :9
日 :26
时 :11
分 :20
秒 :5
一个小时中的第几分钟 :20
这是一分钟的第几秒 :5
星期名称 :Saturday
月份名称 :September
时间戳 :1601090405
end