一、PHP 函数
PHP 是一种流行的服务器端脚本语言,它提供了大量的内置函数,用于执行各种任务,如字符串操作、文件处理、数据库连接等。
1. 字符串处理函数
除了之前提到的 strlen()
和 substr()
,还有一些其他常用的字符串处理函数:
strtolower() 和 strtoupper():用于将字符串转换为小写或大写。
$str = "Hello, World!";
$lower = strtolower($str);
$upper = strtoupper($str);
echo $lower; // 输出:hello, world!
echo $upper; // 输出:HELLO, WORLD!
str_replace():用于替换字符串中的某些字符或子串。
$str = "Hello, World!";
$newStr = str_replace("World", "PHP", $str);
echo $newStr; // 输出:Hello, PHP!
trim():用于去除字符串两端的空格或其他字符。
$str = " Hello, World! ";
$trimmedStr = trim($str);
echo $trimmedStr; // 输出:Hello, World!
2. 数组处理函数
除了 array_push()
和 array_sum()
,PHP 还提供了许多其他数组处理函数:
count():用于计算数组中的元素个数。
$fruits = array("apple", "banana", "orange");
$count = count($fruits);
echo $count; // 输出:3
array_merge():用于合并一个或多个数组。
$array1 = array("apple", "banana");
$array2 = array("orange", "kiwi");
$mergedArray = array_merge($array1, $array2);
print_r($mergedArray); // 输出:Array ( [0] => apple [1] => banana [2] => orange [3] => kiwi )
in_array():用于检查数组中是否存在某个值。
$fruits = array("apple", "banana", "orange");
if (in_array("banana", $fruits)) {
echo "Banana exists in the array.";
} else {
echo "Banana does not exist in the array.";
} // 输出:Banana exists in the array.
3. 文件处理函数
PHP 提供了许多用于文件操作的函数,如:
fopen()、fclose():用于打开和关闭文件。
$file = fopen("example.txt", "r");
if ($file) {
// 读取文件内容等操作...
fclose($file);
} else {
echo "无法打开文件";
}
file_exists():用于检查文件或目录是否存在。
if (file_exists("example.txt")) {
echo "文件存在";
} else {
echo "文件不存在";
}
file_get_contents() 和 file_put_contents():之前已经介绍过,它们分别用于读取和写入文件内容。
4. 数据库处理函数
PHP 通常与 MySQL 数据库一起使用,通过扩展如 mysqli
或 PDO
来实现。以下是一个使用 mysqli
扩展的简单示例:
// 创建数据库连接
$conn = mysqli_connect("localhost", "username", "password", "database_name");
// 检查连接
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
// 执行查询
$sql = "SELECT * FROM users";
$result = mysqli_query($conn, $sql);
// 处理结果集
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
}
} else {
echo "0 结果";
}
// 关闭连接
mysqli_close($conn);
二、创建函数
在 PHP 中,你可以使用 function
关键字来创建自定义函数。函数的基本语法如下:
function functionName() {
// 函数体,即要执行的代码
}
例如,创建一个简单的函数,用于输出一条消息:
function greet() {
echo "Hello, World!";
}
// 调用函数
greet(); // 输出: Hello, World!
三、函数添加参数
函数可以接受参数,这些参数在函数被调用时传递,并在函数体内使用。参数位于函数名后的括号中,用逗号分隔。
function greet($name) {
echo "Hello, " . $name . "!";
}
// 调用函数并传递参数
greet("PHP Developer"); // 输出: Hello, PHP Developer!
在这个例子中,greet
函数接受一个参数 $name
,并在函数体内使用它来构造输出消息。
四、函数返回值
函数可以通过 return
语句返回一个值。返回的值可以是任何数据类型,包括字符串、整数、数组或对象。
function add($a, $b) {
$sum = $a + $b;
return $sum;
}
// 调用函数并获取返回值
$result = add(5, 3);
echo $result; // 输出: 8
在这个例子中,add
函数接受两个参数 $a
和 $b
,计算它们的和,并通过 return
语句返回结果。
五、变量函数
变量函数是指函数的名称存储在一个变量中,然后通过这个变量来调用相应的函数。这在动态调用函数时特别有用。
function apple() {
echo "I am an apple.";
}
function banana() {
echo "I am a banana.";
}
$fruit = 'apple';
$fruit(); // 输出: I am an apple.
$fruit = 'banana';
$fruit(); // 输出: I am a banana.
在这个例子中,$fruit
变量存储了函数名,然后直接通过 $fruit()
来调用相应的函数。需要注意的是,变量函数仅对已经定义过的函数有效,否则会引发错误。
六、函数表
函数 | 描述 |
---|---|
array() | 创建数组。 |
array_change_key_case() | 返回其键均为大写或小写的数组。 |
array_chunk() | 把一个数组分割为新的数组块。 |
array_column() | 返回输入数组中某个单一列的值。 |
array_combine() | 通过合并两个数组(一个为键名数组,一个为键值数组)来创建一个新数组。 |
array_count_values() | 用于统计数组中所有值出现的次数。 |
array_diff() | 比较数组,返回两个数组的差集(只比较键值)。 |
array_diff_assoc() | 比较数组,返回两个数组的差集(比较键名和键值)。 |
array_diff_key() | 比较数组,返回两个数组的差集(只比较键名)。 |
array_diff_uassoc() | 比较数组,返回两个数组的差集(比较键名和键值,使用用户自定义的键名比较函数) |
array_diff_ukey() | 比较数组,返回两个数组的差集(只比较键名,使用用户自定义的键名比较函数) |
array_fill() | 用给定的键值填充数组。 |
array_fill_keys() | 用给定的指定键名的键值填充数组。 |
array_filter() | 用回调函数过滤数组中的元素。 |
array_flip() | 反转/交换数组中的键名和对应关联的键值。 |
array_intersect() | 比较数组,返回两个数组的交集(只比较键值)。 |
array_intersect_assoc() | 比较数组,返回两个数组的交集(比较键名和键值)。 |
array_intersect_key() | 比较数组,返回两个数组的交集(只比较键名)。 |
array_intersect_uassoc() | 比较数组,返回两个数组的交集(比较键名和键值,使用用户自定义的键名比较函数)。 |
array_intersect_ukey() | 比较数组,返回两个数组的交集(只比较键名,使用用户自定义的键名比较函数)。 |
array_key_exists() | 检查指定的键名是否存在于数组中。 |
array_key_first() | 获取指定数组的第一个键值。 |
array_key_last() | 获取指定数组的最后一个键值。 |
array_keys() | 返回数组中所有的键名。 |
array_map() | 将用户自定义函数作用到给定数组的每个值上,返回新的值。 |
array_merge() | 把一个或多个数组合并为一个数组。 |
array_merge_recursive() | 递归地把一个或多个数组合并为一个数组。 |
array_multisort() | 对多个数组或多维数组进行排序。 |
array_pad() | 将指定数量的带有指定值的元素插入到数组中。 |
array_pop() | 删除数组中的最后一个元素(出栈)。 |
array_product() | 计算数组中所有值的乘积。 |
array_push() | 将一个或多个元素插入数组的末尾(入栈)。 |
array_rand() | 从数组中随机选出一个或多个元素,返回键名。 |
array_reduce() | 通过使用用户自定义函数,迭代地将数组简化为一个字符串,并返回。 |
array_replace() | 使用后面数组的值替换第一个数组的值。 |
array_replace_recursive() | 递归地使用后面数组的值替换第一个数组的值。 |
array_reverse() | 将原数组中的元素顺序翻转,创建新的数组并返回。 |
array_search() | 在数组中搜索给定的值,如果成功则返回相应的键名。 |
array_shift() | 删除数组中的第一个元素,并返回被删除元素的值。 |
array_slice() | 返回数组中的选定部分。 |
array_splice() | 把数组中的指定元素去掉并用其它值取代。 |
array_sum() | 返回数组中所有值的和。 |
array_udiff() | 比较数组,返回两个数组的差集(只比较键值,使用一个用户自定义的键名比较函数)。 |
array_udiff_assoc() | 比较数组,返回两个数组的差集(比较键名和键值,使用内建函数比较键名,使用用户自定义函数比较键值)。 |
array_udiff_uassoc() | 比较数组,返回两个数组的差集(比较键名和键值,使用两个用户自定义的键名比较函数)。 |
array_uintersect() | 比较数组,返回两个数组的交集(只比较键值,使用一个用户自定义的键名比较函数)。 |
array_uintersect_assoc() | 比较数组,返回两个数组的交集(比较键名和键值,使用内建函数比较键名,使用用户自定义函数比较键值)。 |
array_uintersect_uassoc() | 比较数组,返回两个数组的交集(比较键名和键值,使用两个用户自定义的键名比较函数)。 |
array_unique() | 删除数组中重复的值。 |
array_unshift() | 在数组开头插入一个或多个元素。 |
array_values() | 返回数组中所有的值。 |
array_walk() | 对数组中的每个成员应用用户函数。 |
array_walk_recursive() | 对数组中的每个成员递归地应用用户函数。 |
arsort() | 对关联数组按照键值进行降序排序。 |
asort() | 对关联数组按照键值进行升序排序。 |
compact() | 创建一个包含变量名和它们的值的数组。 |
count() | 返回数组中元素的数目。 |
current() | 返回数组中的当前元素。 |
each() | 返回数组中当前的键/值对。 |
end() | 将数组的内部指针指向最后一个元素。 |
extract() | 从数组中将变量导入到当前的符号表。 |
in_array() | 检查数组中是否存在指定的值。 |
key() | 从关联数组中取得键名。 |
krsort() | 对关联数组按照键名降序排序。 |
ksort() | 对关联数组按照键名升序排序。 |
list() | 把数组中的值赋给一些数组变量。 |
natcasesort() | 用"自然排序"算法对数组进行不区分大小写字母的排序。 |
natsort() | 用"自然排序"算法对数组排序。 |
next() | 将数组中的内部指针向后移动一位。 |
pos() | current()的别名。 |
prev() | 将数组的内部指针倒回一位。 |
range() | 创建一个包含指定范围的元素的数组。 |
reset() | 将数组的内部指针指向第一个元素。 |
rsort() | 对数值数组进行降序排序。 |
shuffle() | 把数组中的元素按随机顺序重新排列。 |
sizeof() | count() 的别名。 |
sort() | 对数值数组进行升序排序。 |
uasort() | 使用用户自定义的比较函数对数组中的键值进行排序。 |
uksort() | 使用用户自定义的比较函数对数组中的键名进行排序。 |
usort() | 使用用户自定义的比较函数对数组进行排序。 |