一、自定义函数
function 函数名()
{
return 表达式;//也可以不返回,如果不写返回的表达式,则默认返回null
}
函数的调用:
调用函数时应与写的函数相对应
二、php变量范围
1、局部变量
在函数内定义,仅在某个函数内有效
2、全局变量
在函数外定义,从定义处开始到整个php的末尾都可以使用,但如果在函数内使用必须用global声明变量
3、静态变量
在函数内定义,使用static关键字来定义
三、参数的传递
1、按值传递参数
对形式参数的操作,根本不会影响到实际参数的值
2、按引用传递参数
对形参的操作就等于对实参的操作
3、函数的默认参数
在形参传入时直接给其赋值,赋值的方法是从从右往左赋值,先给右边的参数赋值,才能给左边的赋值。
4、可变长度参数列表
PHP自己提供的,可直接使用。
func_get_args();//显示传入各个参数的值和类型,也可进行其他的操作
func_get_arg();//调用时可以传入一个值表示获取第几个传入的实际参数
func_num_args();//返回传入自定义函数的参数的个数
这三个函数可以使用在我们自定义函数内,能返回一些有关参数的信息
四、可变函数(变量函数)
直接把函数赋值给变量
五、递归函数
递归函数即在函数内自己调用自己的函数。
1、函数在被调用的执行过程中会在内存里面分配空间用于存储临时数据,所以函数在执行过程中默认他们之间没有联系,里面的变量默认是局部变量,相互没有影响
2、递归函数在函数内部需要有适时结束函数运行的条件
六、内置函数
PHP提供的函数或结构
七、数组[1]-数组的定义
数组定义方法一:
$变量名[索引值]=具体的值
(索引值可以为数字也可以为字符串)
如果省略索引值不写,则默认索引值从0开始,依次增大
需要用print_r()来输出
数组定义方法二:
$变量名=array(值1.值2,....);
给某个索引值对应的变量赋值
$变量名=array(
索引值1=>值1,
索引值2=>值2,
索引值3=>值3,
)
二维数组:
#变量名=array(
索引值1=>array(值1-1,值1-2,值1-3,...)
索引值2=>array(值2-1,值2-2,值2-3,...)
索引值3=>array(值3-1,值3-2,值3-3,...)
...
//索引值也可省略不写,则默认从0开始,依次增大
)
访问数值的方法
变量名称[索引值][索引值]
八、数组[2]-数组的遍历
遍历数组:每个都经历一遍的意思
1)for循环
for($i=0;$i<count($arr);$i++)//count(数组),返回数组里的数据的个数
{
echo $arr[$i].'<br />';
}
但这种方法有bug,没法遍历关联数组,所以不常用。
2)foreach语句
foreach(数组变量 as 变量1)
{
//每次循环执行的语句
变量1代表当前正在经历(访问)的数据
}
foreach($arr1 as $value)
{
echo $value.'<br />';
}
foreach(数组变量 as 变量1=>变量2)
{
//每次循环执行的语句
变量1代表当前正在经历(访问)的数据的索引值
变量2代表当前正在经历(访问)的数据
}
foreach($arr1 as $key=>$value)
{
echo $key.'=>'.$value.'<br />';
}
遍历有规律的二维数组时,用foreach嵌套即可
foreach($arr as $val1)
foreach($val1 as $val2)
{
echo $val2.'<br />';
}
以表格的形式打印二维数组
$students=array(
array('姓名1',1,男,60.5),
array('姓名2',2,女,70.5),
array('姓名3',3,男,80.5),
);
echo '<table border=1>';
foreach($students as $val)
{
echo "<tr><td>{$val[0]}</td>
<td>{$val[1]}</td>
<td>{$val[2]}</td>
<td>{$val[3]}</td>
</tr>";
}
echo '</table>';
九、数组[3]-预定义超全局数组变量
已经定义好了(存在)的变量(存放的数据的类型是数组)。
超全局:超级全局变量,作用域(有效区域)!
传递数据(提交数据)给服务器端主要两种方式:
1、get方式
传递方法:
在域名后输入?参数名=参数值
接受方法:
在服务器端(请求的php文件这边)可以通过$_GET来获取到
(但这种方法不安全,适合传输一些比较小的数据)
2、post方式
一般用$_POST来获取
十、数组[4]-处理数组的相关函数
这些函数都是PHP为已经为我们提供的,不需要背,只要会通过查手册来使用即可
数组函数手册网址:https://www.php.net/manual/zh/ref.array.php
十一、字符串处理
1、去除字符串首尾处的空白或其他字符函数
1)trim()
trim($字符串名称,"char");
char为你要去除的字符,如果省略,就是去除首尾的空白
2)ltrim()//去除字符串左边的字符或空白
3)rtrim()//去除字符串右边的字符或空白
2、大小写转换函数
1)strtoupper()//将字符串转化为大写
strtoupper($字符串名称);
2)strtolower()//将字符串转化为小写
strtolower($字符串名称);
3、字符串查找函数
1)substr_count()//计算字串出现的次数
substr_count($字符串,$needle);
substr_count($字符串,$needle,$offset,$length)
/*
needle(char):要查找的字符或字符串
offset(int):从第第几位开始查找(从0开始数)
length(int):从开始查找的位置开始向后查多少位
该函数返回的是整型
*/
2)strpos()//查找字符串首次出现的位置
strpos($字符串名称,$needle)
strpos($字符串名称,$needle,$offset)
/*
needle(char):要查找的字符或字符串
offset(int):从第第几位开始查找(从0开始数)
该函数返回的值可能是整型,也可能是布尔类型的false(当返回的值为0时)
*/
3)strstr()//查找字符串的首次出现
strstr($字符串名称,$needle)
strstr($字符串名称,$needle,before_needle)
/*
needle(char):要查找的字符或字符串
该函数返回字符串,该字符串为needle(char)及其后面的内容
before_needle:如果为true,则返回needle(char)之前的内容(不包括needle(char))
*/
4、字符串替换函数
1)str_replace()//子字符串替换
str_replace($search,$replace,$str)
str_replace($search,$replace,$str,$count)
/*
search(char):要替换的字符
replace(char):要替换成的字符
count(int):替换的次数
也可以用数组一次替换多个字符
str_replace(array('c1','c2','c3'),array('d1','d2','d3'),$str)
str字符串中的c1,c2,c3会被替换成d1,d2,d3
该函数返回字符串
*/
5、与html标签相关的函数
1)htmlspecialchars()//将特殊字符转换为 HTML 实体
2)strip_tags()//从字符串中去除 HTML 和 PHP 标记
6、字符串截取函数
1)substr()//返回字符串的子串
substr($str,$start)
substr($str,$start,$length)
/*
str:传入的字符串
start(int):从此处开始截取(从0开始数),若为负数则从尾开始数
length(int):返回的字符串的长度
*/
7、字符串分隔函数
1)explode()//使用一个字符串分割另一个字符串
explode($delimiter,$字符串名称)
explode($delimiter,$字符串名称,$limit)
/*
delimiter(char):从此字符处分割
limit(int):限制分割的次数,分割limit-1次
*/
2)str_split()//将字符串转换为数组
str_split($字符串名称,$split_length)
/*
split_length:每个转换成的数组中的元素有多少个字符
返回一个数组
*/
字符串处理手册网址:https://www.php.net/manual/zh/book.strings.php