(一)PHP函数
函数,就是将一些重复使用的功能写在一个独立的代码块中。
- PHP 函数准则:
- 函数的名称应该提示出它的功能
- 函数名称以字母或下划线开头(不能以数字开头)
<?php
function writeName() //writeName 是函数名 可以随意更改
{
echo "Kai Jim Refsnes"; // {} 内写的是函数体
}
echo "My name is ";
writeName(); //执行函数
// 输出 My name is Kai Jim Refsnes
//带参函数(可以带多个参数,中间用逗号隔开)
function writeName($fname)
{
echo $fname . " Refsnes.<br>";
}
echo "My name is ";
writeName("Kai Jim"); // 输出 My name is Kai Jim Refsnes.
?>
1.1 函数返回值
- 如需让函数返回一个值,请使用 return 语句
- 返回值可以是变量,常数,表达式,对象,数组
<?php
function add($x,$y)
{
$total=$x+$y;
return $total;
}
echo "1 + 16 = " . add(1,16);
?>
1.2 传参方式
- 1.2.1 按值传参
<?php
function sum($a,$b){
$a+=5;
return $a+$b;
}
$x=10;
$y=20;
echo sum($x,$y)."<br>"; // 输出 35
echo $x; //输出 10
?>
- 1.2.2 引用传参(在参数前面加上&,函数内的操作将会影响到实参的值)
<?php
function sum(&$a,$b){
$a+=5;
return $a+$b;
}
$x=10;
$y=20;
echo sum($x,$y)."<br>"; // 输出 35
echo $x; //输出 15
?>
- 1.2.3 静态变量
function num()
{
static $i = 1;
echo $i;
++$i;
}
num(); // 1
num(); // 2
- 1.2.4 默认参数
- 默认参数只能是一个常量
- 默认参数只能放在最后
- 调用函数时,应遵循默认参数的顺序
<?php
function sum($a,$b=20){
$a+=5;
return $a+$b;
}
$x=10;
echo sum($x,$y)."<br>"; // 输出 35
echo $x; //输出 10
?>
1.3 变量函数
PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。可变函数可以用来实现包括回调函数,函数表在内的一些用途。
function foo() {
echo "In foo()<br />\n";
}
function bar($arg = '')
{
echo "In bar(); argument was '$arg'.<br />\n";
}
// 使用 echo 的包装函数
function echoit($string)
{
echo $string;
}
$func = 'foo';
$func(); // 调用 foo()
$func = 'bar';
$func('test'); // 调用 bar()
$func = 'echoit';
$func('test'); // 调用 echoit()
1.4 匿名函数
匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数 callable参数的值。
匿名函数中使用外部的变量,需要通过use关键字实现。use关键字后圆括号“()”中的内容即为要使用的外部变量列表,多个变量之间使用英文逗号“,”分隔即可。
//匿名回调
<?php
echo preg_replace_callback('~-([a-z])~', function ($match) { //preg_replace_callback 函数执行一个正则表达式搜索并且使用一个回调进行替换。
return strtoupper($match[1]);
}, 'hello-world');
// 输出 helloWorld
?>
//匿名函数变量赋值示例
<?php
$greet = function($name)
{
printf("Hello %s\r\n", $name);
};
$greet('World');
$greet('PHP');
?>
//匿名函数调用外部变量
<?php
$c = 100;
$sum = function($a, $b) use($c) {
return $a + $b + $c;
};
echo $sum(100, 200); // 输出结果:400
?>
1.5 箭头函数( 需PHP 7.4 或以上版本)
箭头函数的基本语法为 函数名 (参数) => 需返回的表达式或值。 箭头函数支持与 匿名函数 相同的功能,只是其父作用域的变量总是自动的。
可以参考es6中的箭头函数简写形式 data => data++
<?php
$y = 1;
$fn1 = fn($x) => $x + $y;
// 相当于通过 value 使用 $y:
$fn2 = function ($x) use ($y) {
return $x + $y;
};
var_dump($fn1(3)); // 4
//在箭头函数嵌套的情况下同样有效。
$z = 1;
$fn = fn($x) => fn($y) => $x * $y + $z;
// 输出 51
var_dump($fn(5)(10)); //51
?>
1.6 函数的引用
(二)PHP系统函数库
2.1 变量函数
函数名 | 功能 | 格式 :返回值 函数名(接收参数) |
---|---|---|
empty | 检查一个变量是否为空 | bool empty ( mixed $var ) |
intval | 获取变量的整数值 | int intval ( mixed $var [, int $base = 10 ] ) |
gettype | 获取变量的类型 | string gettype ( mixed $var ) |
is_array | 检测变量是否是数组 | bool is_array ( mixed $var ) |
is_bool | 检测变量是否是布尔型 | bool is_bool ( mixed $var ) |
is_float | 检测变量是否是浮点型 | bool is_float ( mixed $var ) |
is_int | 检测变量是否是整数 | bool is_int ( mixed $var ) |
is_string | 检测变量是否是字符串 | bool is_string ( mixed $var ) |
print_r | 打印变量,输出易于阅读的信息。 | bool print_r ( mixed $expression [, bool $return ] ) |
isset | 检测变量是否已设置并且非 NULL | bool isset ( mixed $var [, mixed $… ] ) |
strval | 获取变量的字符串值 | string strval ( mixed $var ) |
unset | 释放给定的变量 | void unset ( mixed $var [, mixed $… ] ) |
var_dump | 打印变量的相关信息 | void var_dump ( mixed $expression [, mixed $… ] ) |
var_export | 输出或返回一个变量,以字符串形式表示 | mixed var_export ( mixed $expression [, bool $return ] ) |
// 用"***"掩盖身份证部分信息
$id_card = '37172220011118451X';
$len=4;
$start=5;
$replace=str_repeat('*',$len);
$id_newcard=substr_replace($id_card,$replace,$start,$len);
echo"掩盖后的身份证号:".$id_newcard;
//字符串函数---截取给定路径中的字符串,写下第29个PPT案例
$url = 'C:\web\apache2.4\htdocs\cat.jpg';
$pos = strrpos($url, '\\');
// 截取文件名称,输出结果:cat.jpg
echo substr($url, $pos + 1);
// 截取文件所在的路径,输出结果:C:\web\apache2.4\htdocs
echo substr($url, 0, $pos);
//字符串函数——过滤字符串中的空白字符
$str = ' These are a few words :) ... ';
echo '原字符串:' . $str . '<br>';
echo '去空白后的字符串:' . trim($str);
//字符串函数——字符串的比较
if (strcmp('ye_PHP', 'yePHP')) {
echo 'not the same string';
} else {
echo 'the same string';
}
//字符串函数——获取字符串的长度
$str = ‘PHP书籍';
echo strlen($str); // 输出结果:9
$str = ‘PHP书籍';
echo mb_strlen($str, 'UTF-8'); // 输出结果:5
if (strcmp('ye_PHP', 'yePHP')) {
echo 'not the same string';
} else {
echo 'the same string';
}
$str = 'PHP书籍';
echo strlen($str); // 输出结果:9
$str = 'PHP书籍';
echo mb_strlen($str, 'UTF-8'); // 输出结果:5
2.2 数学函数库
函数 | 功能 | 格式 :返回值 函数名(接收参数) |
---|---|---|
abs() | 返回一个数的绝对值。 | float/Int abs(number); |
ceil() | 向上舍入为最接近的整数。 | float ceil(number); |
floor() | 向下舍入为最接近的整数。 | float floor(number); |
max() | 返回一个数组中的最大值,或者几个指定值中的最大值。 | mixed max(array_values); |
min() | 返回一个数组中的最小值,或者几个指定值中的最小值。 | mixed min(array_values); |
rand() | 返回随机整数。 | int rand(min,max); |
round() | 对浮点数进行四舍五入。 | float round(number,precision,mode); |
srand() | 播种随机数生成器。 | void srand(seed); |
echo ceil(5.2); // 输出结果:6
echo floor(7.8); // 输出结果:7
echo rand(1, 20); // 随机输出1到20间的整数
2.3 日期函数
Date/Time 函数允许您从 PHP 脚本运行的服务器上获取日期和时间。您可以使用 Date/Time 函数通过不同的方式来格式化日期和时间。
//string date ( string $format [, int $timestamp ] )
echo date('Y-m-d H:i:s');
//时间戳:从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数
echo '<br>'.time().'<br>';
//时间戳格式化
echo date('Y-m-d H:i:s',time());