PHP基础语法(三)

一、函数

1、定义一个函数的语法如下:

function functionName($param1, $param2, ...) {
    // 函数体
    return $result; // 可选的返回值
}
function add($a, $b) {
    $sum = $a + $b;  //函数体可直接使用形参运算
    return $sum;
}

// 调用函数  ----函数的调用可以在函数定义之前
$result = add(3, 5); //传入的实参,可以是变量或者有值表达式
echo "The sum is: " . $result; // 输出:The sum is: 8

2、形参&实参

形参可以有多个,使用逗号分隔即可。

实参个数可以多于形参(不能少于)

默认值:形参的默认值。若调用时没有提供实参,则函数使用默认值执行函数

引用传递:只有变量才可以引用传递,如果尝试将常量或者字面量(如数字或字符串)作为引用传递,会导致语法错误或者警告,因为常量和字面量在 PHP 中是不可修改的,因此无法将它们作为引用传递给函数。

3、函数返回值

return直接结束函数,所以后面所有的内容不再执行。

4、作用域

全局变量:可以在脚本的任何地方访问和修改,但要注意全局变量在不同的上下文中可能有不同的行为,特别是在函数和类的方法中。

局部变量:只能在函数内部访问。函数外部无法直接访问函数内部的变量。

超全局变量:没有访问限制,任何作用域中都可以访问,包括函数内部和类的方法内部。

静态作用域:静态变量在函数内部声明但在函数调用结束后并不丢失其值,而是保留在内存中直到脚本执行结束。使用static关键字修饰,用来实现夸函数共享数据的变量(注:跨函数是指同个函数多次调用)。这对于需要在函数多次调用之间保留状态或计数器非常有用。

function incrementAndDisplay() {
    static $count = 0; // 静态变量 $count 初始化为 0
    
    $count++; // 每次调用增加计数器的值
    echo "Count: $count<br>";
}

// 连续调用 incrementAndDisplay 函数
incrementAndDisplay(); // 输出:Count: 1
incrementAndDisplay(); // 输出:Count: 2
incrementAndDisplay(); // 输出:Count: 3

5、可变函数

在 PHP 中,可变函数是指可以通过变量来调用的函数。这种特性使得数名可以动态地确定和调用,通常用于需要根据不同条件调用不同函数的情况。

function greet() {
    echo "Hello, ";
}

function farewell() {
    echo "Goodbye!";
}

// 定义一个变量来存储函数名
$functionName = "greet";

// 使用可变函数调用 greet() 函数
$functionName(); // 输出:Hello,

// 修改变量为 farewell 函数
$functionName = "farewell";

// 再次使用可变函数调用 farewell() 函数
$functionName(); // 输出:Goodbye!

6、匿名函数

在 PHP 中,匿名函数(也称为闭包函数)是一种没有具体名称的函数,可以在需要时声明和使用。

// 基本的匿名函数示例
$greet = function($name) {
    echo "Hello, $name!";
};

// 调用匿名函数
$greet('Alice'); // 输出:Hello, Alice!

// 另一个示例,使用匿名函数作为回调函数
$numbers = [1, 2, 3, 4, 5];
$filteredNumbers = array_filter($numbers, function($num) {
    return $num % 2 == 0; // 过滤偶数
});

print_r($filteredNumbers); // 输出:Array ( [1] => 2 [3] => 4 )

// 将匿名函数赋值给变量
$calculate = function($a, $b) {
    return $a + $b;
};

echo $calculate(10, 5); // 输出:15

闭包(Closure)是一种特殊的匿名函数,它可以在声明时捕获其所在的上下文中的变量。这意味着闭包可以访问其声明外部作用域的变量,并且可以在之后的调用中保持对这些变量的访问权。在 PHP 中,闭包通常与回调函数一起使用,或者作为函数的返回值返回。

// 定义一个简单的闭包
$factor = 2;
$closure = function($number) use ($factor) {
    return $number * $factor;
};

// 使用闭包
$result = $closure(5);
echo $result; // 输出:10 (5 * 2)
  • 定义了一个闭包 $closure,它使用了外部变量 $factor
  • 虽然 $factor 是在闭包外部定义的,但闭包内部仍然可以使用它,这是因为 use ($factor) 表示闭包会捕获并持有 $factor 的值。
  • 当我们调用 $closure(5) 时,闭包会将 5 乘以外部的 $factor 值,然后返回结果 10。

二、错误处理

1、错误分类

1、语法错误:书写代码不符合PHP语法规范,会导致代码在编译中不允许,故也不会执行(parse
error);
2、运行时错误:代码编译通过,但在执行时会出现一些条件不满足从而导致的错误。(runtime error取空数组的第几位数)
3、逻辑错误:写代码不规范、但逻辑性错误,导致虽可正常运行,但得不到预期结果。

2、错误代号

系统代号在PHP中均被定义为了系统常量,故可直接使用:
1、系统错误:
E_PARSE:编译错误,代码不会运行
E_ERROR:fatal error致命错误,会在出错的位置断掉
E_WARNING:warning警告错误,不影响执行,但可能得不到预期结果
E_NOTICE:notice,通知错误、不影响代码执行
2、用户错误(用户使用的代号):E_USER_ERROR、E_USER_WARNING、E_USER_NOTICE     用户在使用自定义错误出发的时候,会使用的错误代号。
3、E_ALL:代表所有错误
所有E开头的错误常量都由一个字节(8位)存储,且每一种错误占用一个位,故可进行位运算操作。

3、错误触发

在 PHP 中,header() 函数是用来发送原始 HTTP 头部的函数之一。它通常用于控制网页的缓存、重定向和设置 Cookie 等功能。

发送基本头部,告诉浏览器该页面使用 UTF-8 编码。

header("Content-Type: text/html; charset=UTF-8");

header()必须在任何实际输出之前调用,这意味着它应该在 <html> 标签或任何输出内容之前调用,否则会产生错误。

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值