【问题标题】:what is the use keyword in php symfony [duplicate]php symfony中的use关键字是什么[重复]
【发布时间】:2013-10-14 20:32:47
【问题描述】:

我是 PHP 新手。我正在尝试阅读 Symfony 2 app 中的代码,但我无法理解这个函数是什么。

谁能给我解释一下这个函数在做什么。我不知道这个变量是如何定义的

$def = function($name, $class, $args=[]) use ($container){
   return $container->doStuff($name, $class);
};

use 在那里做什么?

【问题讨论】:

  • 简而言之,use 使 $container 变量在匿名函数中可用。
  • 是来自 php 或 symfony 的 use 的语法。我没有看到use函数声明后的字

标签: php symfony


【解决方案1】:

以这种方式使用关键字

<?php
namespace foo;
use My\Full\Classname as Another;

// this is the same as use My\Full\NSname as NSname
use My\Full\NSname;

// importing a global class
use ArrayObject;

$obj = new namespace\Another; // instantiates object of class foo\Another
$obj = new Another; // instantiates object of class My\Full\Classname
NSname\subns\func(); // calls function My\Full\NSname\subns\func
$a = new ArrayObject(array(1)); // instantiates object of class ArrayObject
// without the "use ArrayObject" we would instantiate an object of class foo\ArrayObject
?>

【讨论】:

    【解决方案2】:

    这个:

    $def=function($name, $class, $args=[]) use ($container){
       return $container->doStuff($name, $class);
    };
    

    大致相同:

    $def = my_function($container, $name, $class);
    
    function my_function($container, $name, $class, $args=[]) {
      return $container->doStuff($name, $class);
    }
    

    【讨论】:

    • 谢谢,我想在评论中问这意味着传递另一个参数作为参数
    猜你喜欢
    • 2017-05-07
    • 2011-10-15
    • 1970-01-01
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2017-09-24
    • 1970-01-01
    相关资源
    最近更新 更多