首页 > 后端开发 > 正文

php 使用use 和直接传参的区别 php中use的用法

2025-03-18 12:23:29 | 我爱编程网

php 使用use 和直接传参的区别 php中use的用法相关内容,小编在这里做了整理,希望能对大家有所帮助,关于php 使用use 和直接传参的区别 php中use的用法信息,一起来了解一下吧!

本文目录一览:

php 使用use 和直接传参的区别 php中use的用法

use关键字在PHP中的百态人生

使用关键字在PHP中的应用多样,功能丰富。以下四点展示了使用关键字在PHP中的百态人生。

首先,使用关键字用于命名空间的引用。在PHP中引入命名空间使用关键字`use`,示例如下:

namespace admin\controller;
use \core\controller; //引入命名空间
class ArticleController extends Controller{ public function index(){ }}

其次,别名关键字的使用,允许为已存在元素创建别名。例如:

namespace space;
function display(){}class Man{}const PI = 3.14; namespace space1;class Man{}//引入空间元素//use space\Man; //错误:当前空间已经存在Manuse space\Man as M;use function space\display as dis;use const space\PI as D;

再次,使用关键字引入trait特性,trait允许在类中引入其他类的特性。示例如下:

trait A{ function testTrait(){ echo 'This is Trait A!' }}class B { use A;}$b = new B();$b->testTrait();

最后,使用关键字在匿名函数中引用局部变量。PHP允许在匿名函数中使用`use`关键字引用外部作用域的变量,示例如下:

function F1(){ $ok="HelloWorld" $a=function() use($ok) { echo "$ok" }; $a();}

通过使用关键字`use`,PHP提供了一种灵活的机制来管理命名空间、引入别名、使用trait以及引用局部变量。掌握这些关键字的使用,将使你在PHP开发中更加得心应手。

推荐资源:《2021年PHP面试题大汇总(收藏)》《php视频教程》

php 使用use 和直接传参的区别 php中use的用法

php 使用use 和直接传参的区别

实际应用 1 : 在创建闭包时, 生成所use变量的快照, 下文再次调用闭包函数时, 快照变量不改变
$a = 5;

$b = function ($x) use ($a) {
$a += $x; echo $a;
};

$a = 10; // 这个变量被再次赋值, 但是在use语句中的'快照'是不会改变的

$b(100); // 输出 : 105

实际应用 2 : 使用引用传值, 生成所use变量的指针, 下文再次调用闭包函数时, 快照变量会改变(其实这样做与直接传参已经没有区别, 所以这么做意义不大, 而且代码可读性降低)

$a = 5;

$b = function ($x) use (&$a) {
$a += $x; echo $a;
};

$a = 10; // 变量重新赋值, 上文中闭包所引用的变量值也被改变

$b(100); // 输出 : 110

php中use的用法

我爱编程网(https://www.52biancheng.com)小编还为大家带来php中use的用法的相关内容。

在PHP中,如果命名空间字符串过长时,我们就使用use来相应的缩短命名空间。这也是use在PHP中的作用。下面我们就为大家介绍一下PHP中use的用法。
推荐教程:PHP视频教程
1、new类时,最前面无需用反斜杠。此外,use后没有as时,缩短的命名空间默认为最后一个反斜杠后的内容。
namespace animal\dog;class Life{ function __construct(){ echo 'dog life!' }}namespace animal\cat;class Life{ function __construct(){ echo 'cat life!' }}new Life(); //按照代码执行顺序,这里默认animal\cat这个命名空间new \animal\dog\Life(); //Ause animal\dog; //anew dog\Life(); //Buse animal\dog as d; //bnew d\Life();
通过A、B行代码比较,需要注意:
使用use后,new类时,最前面没有反斜杠。
没使用use时,命名空间最前面有反斜杠
通过a、b行代码比较,可以理解:
use后没有as时,缩短的命名空间默认为最后一个反斜杠后的内容。如上的:
use animal\dog;
相当于
use animal\dog as dog;
2.namespace后面不建议加类名,但use后可以。
//name.phpnamespace animal\dog;class Life{ function __construct(){ echo 'dog life!' }}namespace animal\cat;class Life{ function __construct(){ echo 'cat life!' }}use animal\dog\Life as dog; new dog();
如上所示,use后加上类名后,就相当于把类改了个名称:由Life改为dog了。
上面不用as dog就会报错:
Fatal error: Cannot use animal\dog\Life as Life because the name is already in use
因为cat下也有个一样名称的Life类。
可以理解为,使用use后,这个昵称对应的类只能归当前命名空间占有,其它命名空间下不允许存在该类。
//name.phpnamespace animal\dog;class Life{ function __construct(){ echo 'dog life!' }}class Dog{ function __construct(){ echo 'dog in dog!' }}namespace animal\cat;// class Dog{// function __construct(){// echo 'dog in cat!'// }// }class Life{ function __construct(){ echo 'cat life!' }}use animal\dog; new dog\Dog();
如上,使用了
use animal\dog; cat
通过上面代码,我想使用use的目的效果(缩短命名空间名称)就很明显了。
简单总结一下:
use就是起小名的作用,不论写起来还是说起来都可以省不少事儿。 我爱编程网

以上就是php 使用use 和直接传参的区别 php中use的用法全部内容了,了解更多相关信息,关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“php 使用use 和直接传参的区别 php中use的用法”相关推荐
php 命名空间函数和类中不能使用use吗
php 命名空间函数和类中不能使用use吗

Thinkphp空操作.空控制器.命名空间详解1、空操作空操作是指系统在找不到请求的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化。网址/index.php/Home/Main/login网址/index.php/Home/Main/hello空操作出现页面:显示的错误信息过于详细,为安全以及优化页面起见

2025-01-15 18:15:07
php匿名函数中的use有什么用
php匿名函数中的use有什么用

php匿名函数中的use有什么用php文档中关于use的说明所有支持命名空间的PHP版本支持三种别名或导入方式:为类名称使用别名、为接口使用别名或为命名空间名称使用别名。PHP 5.6开始允许导入函数或常量或者为它们设置别名。在PHP中,别名是通过操作符 use 来实现的.  下面是一个使用所有可能的五种导入方式的例子:Example #1 使用use操作符导入/使用别名<?ph

2025-01-01 09:06:45
php中function函数的用法 PHP直接调用函数和调用另外一个文件中的函数的区别
php中function函数的用法 PHP直接调用函数和调用另外一个文件中的函数的区别

php中function函数的用法在PHP中,function是用于定义和声明函数的关键字。函数是一段可重复使用的代码块,它封装了一系列操作或逻辑,并可以通过函数名进行调用和执行。通过使用函数,可以将代码模块化,提高代码的可读性、可维护性和重用性。在PHP中,function关键字用于定义和声明函数。函数是一段可重复使用的代码块,它封装了一系列操作或逻辑,并可以通过函数名进行调用和执行,

2024-09-04 15:12:23
一张图让我看懂PHP和JS区别(PHP直接调用函数和调用另外一个文件中的函数的区别)
一张图让我看懂PHP和JS区别(PHP直接调用函数和调用另外一个文件中的函数的区别)

一张图让我看懂PHP和JS区别1,类型转换的不同在javascript中,空对象和空数组转换为boolean值为true;但在php中,空对象空数组转换为boolean值为false;(仅在php4中空对象的boolean值为false)包括非0的负数值,都是转换为true;2,实形参的不同在js中形参和实参的个数对比起来都没有限制,形参个数可以大于实参,

2024-11-28 22:04:20
按引用传递参数用php来表示圆柱的表面积? PHP传值,引用和传址的区别
按引用传递参数用php来表示圆柱的表面积? PHP传值,引用和传址的区别

按引用传递参数用php来表示圆柱的表面积?下面是一个使用按引用传递参数的PHP函数,用于计算圆柱的表面积:functioncylinder_surface_area($radius,$height,&$surface_area){$surface_area=2*pi()*$radius*$height+2*pi()*pow($radius,2);}//示例用法$

2024-07-28 02:23:29
PHP 里url传值(PHP传值,引用和传址的区别)
PHP 里url传值(PHP传值,引用和传址的区别)

PHP里url传值如果form表单提交的时候用了post就要用post来接收,比如说<formmethod="post">用户名:<inputtype="text"name="name"value="">密码:<inputtype="password"name="pwd"value=""><inputtype="submit"valu

2025-03-05 15:17:12
php外部函数接口 PHP直接调用函数和调用另外一个文件中的函数的区别
php外部函数接口 PHP直接调用函数和调用另外一个文件中的函数的区别

PHP定义一个函数swap(&$a,&$b)。$x = 5;$y = 6;function swap(&$a,&$b){    $temp = $a;    $a = $b;    $b = $temp;}echo '调用前$x='.$x.',$y='.$y;swap($x,$y);echo "\n";echo '调用后$x='.$x.',$y='.$y;输出:调用

2025-01-07 10:56:27
php传值函数吗 PHP中按值传递和引用传递的区别
php传值函数吗 PHP中按值传递和引用传递的区别

PHP里url传值如果form表单提交的时候用了post就要用post来接收,比如说<formmethod="post">用户名:<inputtype="text"name="name"value="">密码:<inputtype="password"name="pwd"value=""><inputtype="submit"valu

2025-03-14 14:36:32