一.函数
函数(function)是一段完成特定功能的已命名代码块。函数可以遵照参数完成特定的任务,并且可能返回一个值。
1.自定义函数
函数的定义
function 函数名称(参数1 ,参数2=默认值 ,…){
程序内容叙述(也叫函数体);
return 返回值; //return语句将终止函数的执行
}
另:函数的名称应该体现出它的功能,函数名可以是以字母或下划线开头后跟字母、下划线和数字。
函数的调用
函数只有在被调用时才会执行,函数被调用后开始执行函数体中代码,执行的过程是相对独立的,执行完后返回调用的位置继续向下执行。
函数的参数
- 函数可以有零个或多个参数
- 函数的参数可以为任意数据类型
- 函数的参数往往用来改变函数执行结果或执行行为
函数的返回值
- return语句并不是必须的
- 默认情况下,函数的返回值为NULL
- return语句将终止函数的执行
2.变量范围
局部变量
局部变量是在函数内定义的,它的作用域仅限于函数内部。
全局变量
全局变量是在函数外定义的,它的作用域为从变量定义处开始到本程序的末尾。在php函数中无法直接使用全局变量,如果使用必须使用global声明变量。
静态变量
静态变量是指在函数内部定义变量的时候使用static关键字来定义变量。
3.参数传递
在函数的形参中使用“&“修饰的参数
在调用该函数时必须传入一个变量给这个参数,而不能传递一个具体的值。
$i=100;
function test($a)
{
echo ++$a;
}
test($i);
echo $i;
4.可变函数
以一个变量的值作为函数名的函数
function test()
{
}
$a='test';
$a();
5.递归函数
函数直接或间接调用函数本身,则该函数称为递归函数。
必须具备判断是否执行递归调用的条件。
终止函数的递归调用时,需把目前流程的主控权交回上一层函数执行。
函数递归调用最大的好处在于可以精简程序中繁杂重复调用程序。
function fun($n){
echo $n.' ';
if($n>0){
fun($n-1);
}else{
echo '<br/>';
}
echo $n.' ' ;
}
fun(3);
6.内部函数
php有很多提供给我们现成的函数或结构。
比如:
echo()
include()
include_once()
require()
二.数组
1.理解与创建
理解
数组是php中的重要数组类型之一,是复合类型;
数据的集合,在php中数组是一个有序映射.
创建
法一:
变量名称[索引值]=数据;
变量名称[]=数据;//不写索引值默认是索引数组,从零开始
法二:
变量名称=array(
索引值=>数据,
........
);
2.遍历数组
for循环
用的比较少,因为有缺陷。
通过foreach遍历数组
foreach($数组名称 as $变量名称){循环体;};
foreach($数组名称 as 变量1=>变量2){循环体;};
3.预定义超全局数组
预定义:已经定义好的变量(存放的数据的类型是数组)。
超全局:超级全局变量,作用域(有效区域)。
传递数据(提交数据)给服务器端主要两种方式:
get方式
?参数名=参数值&参数名=参数值……
在服务器端(请求的php文件这边)可以通过$_GET来获取到
post方式
比如表单post发送过来的一般用$_POST来获取
4.处理数组的相关函数
相关函数我们可以通过查手册来使用:
数组的相关函数
三.字符串处理
1.去除空白或其他字符函数
trim()
trim($字符串名称,"char");
char为你要去除的字符,如果省略,就是去除首尾的空白
ltrim()去除字符串左边的字符或空白
rtrim()去除字符串右边的字符或空白
2.大小写转换函数
strtoupper()将字符串转化为大写
strtoupper($字符串名称);
strtolower()将字符串转化为小写
strtolower($字符串名称);
3.字符串查找函数
substr_count()计算字串出现的次数
substr_count($字符串,$needle);
substr_count($字符串,$needle,$offset,$length)
/*
needle(char):要查找的字符或字符串
offset(int):从第第几位开始查找(从0开始数)
length(int):从开始查找的位置开始向后查多少位
该函数返回的是整型
*/
strpos()查找字符串首次出现的位置
strpos($字符串名称,$needle)
strpos($字符串名称,$needle,$offset)
/*
needle(char):要查找的字符或字符串
offset(int):从第第几位开始查找(从0开始数)
该函数返回的值可能是整型,也可能是布尔类型的false(当返回的值为0时)
*/
strstr()查找字符串的首次出现
strstr($字符串名称,$needle)
strstr($字符串名称,$needle,before_needle)
/*
needle(char):要查找的字符或字符串
该函数返回字符串,该字符串为needle(char)及其后面的内容
before_needle:如果为true,则返回needle(char)之前的内容(不包括needle(char))
*/
4.字符串替换函数
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标签相关的函数
htmlspecialchars()//将特殊字符转换为html 实体
strip_tags()//从字符串中去除 html和 php 标记
6.字符串截取函数
substr()返回字符串的子串
substr($str,$start)
substr($str,$start,$length)
/*
str:传入的字符串
start(int):从此处开始截取(从0开始数),若为负数则从尾开始数
length(int):返回的字符串的长度
*/
7.字符串分隔函数
explode()使用一个字符串分割另一个字符串
explode($delimiter,$字符串名称)
explode($delimiter,$字符串名称,$limit)
/*
delimiter(char):从此字符处分割
limit(int):限制分割的次数,分割limit-1次
*/
str_split()将字符串转换为数组
str_split($字符串名称,$split_length)
/*
split_length:每个转换成的数组中的元素有多少个字符
返回一个数组
*/