PHP 函数名加 &
在 PHP 5 中,& 符号可以用来表示变量的引用,也称为传址调用。当函数定义中的参数前面带有 & 符号时,表示该参数的值是对变量的引用,而不是对变量本身的值的传递。语法如下:
```php
function myFunc(& $arg) {
// 函数体
}
```
上面的代码中,& $arg 表示将 $arg 变量作为引用传递给 myFunc 函数。这样,在函数内部对 $arg 的修改会影响到函数外部对该变量的使用。
在 PHP 7 中,& 符号已不再表示传址调用,而是在声明和调用函数中用来表示引用返回。具体用法如下:
```php
function &myFunc() {
// 函数体
return $arg;
}
$var =& myFunc();
```
上面的代码中,& 符号表示 myFunc 函数返回的是一个引用,而不是一个值。在调用时,$var 变量通过 =& 运算符与函数返回值建立了一个引用关系,因此对 $var 的修改会影响到函数返回值。
PHP7 数据库异常处理
在 PHP7 中,对数据库的异常处理有了较大的改进。之前,在 PHP5 中,如果发生了数据库错误,可能需要使用一些诸如 try、catch、$e->getMessage() 等代码来捕获和处理异常。
```php
try {
$dbh = new PDO('mysql:host=localhost;dbname=myDB', 'myUsername', 'myPassword');
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
```
在 PHP 7 中,使用 PDO 的时候,可以使用 try、catch 这样的异常处理机制来捕获PDO试图抛出的所有异常。此外, PDO 在PHP7中也提供了一个 unhandled() 方法,用于设置由 PDO 抛出的未处理异常的处理方式。
```php
try {
$dbh = new PDO('mysql:host=localhost;dbname=myDB', 'myUsername', 'myPassword');
$sth = $dbh->prepare('SELECT * FROM myTable');
$sth->execute();
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
} finally {
// finally 是在 try 或 catch 块的代码执行完之后执行的
// 不管有没有抛出异常,都会执行
$dbh = null; // 关闭数据库连接
}
```
使用以上代码,无论何时发生异常,都会被catch块捕获并打印错误信息。在finally块中,添加了关闭数据库连接的代码,确保不会因为异常导致连接一直处于打开状态。
总结
PHP函数名加 &和PHP7数据库异常处理都为我们在开发过程中提供了更好的工具和更方便的编程体验。在使用的时候,我们可以根据实际情况进行选择和应用。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/
发表评论 取消回复