Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP函数中获取特定值_Php_Function - Fatal编程技术网

从PHP函数中获取特定值

从PHP函数中获取特定值,php,function,Php,Function,我知道下面的PHP代码是不正确的,但我想知道如何实现这个想法 function A(){ $a = 'Hello'; $b = 'World'; $c = $a.' '.$b; echo 'blah blah blah times 1,000'; function B($c){ return $c; } } echo function B(); 如果您有PHP 5.3或更高版本,则使用匿名函数很容易: function A()

我知道下面的PHP代码是不正确的,但我想知道如何实现这个想法

function A(){
    $a = 'Hello';
    $b = 'World';
    $c = $a.' '.$b;
    echo 'blah blah blah times 1,000';

    function B($c){
        return $c;
    }
}
echo function B();

如果您有PHP 5.3或更高版本,则使用匿名函数很容易:

function A() {
    global $B;

    $a = 'Hello';
    $b = 'World';
    $c = $a.' '.$b;
    echo 'blah blah blah times 1,000';

    $B = function() use ($c) {
        return $c;
    };
}

A(); // blah blah blah times 1,000
echo $B(); // Hello World

如果没有,您可以使用完成相同的任务。

如果您使用的是PHP 5.3或更高版本,使用匿名函数很容易:

function A() {
    global $B;

    $a = 'Hello';
    $b = 'World';
    $c = $a.' '.$b;
    echo 'blah blah blah times 1,000';

    $B = function() use ($c) {
        return $c;
    };
}

A(); // blah blah blah times 1,000
echo $B(); // Hello World

如果没有,您可以使用来完成相同的任务。

按照脚本的工作方式,默认情况下B是未定义的。调用函数A时,脚本的其余部分将定义B。例如:

echo B('blah'); // Returns a 'function doesn't exist' error

A();
echo B('blah'); //Echos 'blah', as B is now defined.

按照脚本的工作方式,默认情况下未定义B。调用函数A时,脚本的其余部分将定义B。例如:

echo B('blah'); // Returns a 'function doesn't exist' error

A();
echo B('blah'); //Echos 'blah', as B is now defined.

有几种方法。以下是最简单的:

function B($c){
    return $c;
}

function A(){
    $a = 'Hello';
    $b = 'World';
    $c = $a.' '.$b;
    echo 'blah blah blah times 1,000';
    B($c);
}

}
echo B();
但鉴于
B
不起任何作用,您可以选择:

function A(){
    $a = 'Hello';
    $b = 'World';
    $c = $a.' '.$b;
    echo 'blah blah blah times 1,000';
    return $c;
}

echo A();
我怀疑您想要在函数之间交换值以获得更大的输出。为此,您应该研究面向对象编程,PHP正在尽其所能赶上它

面向对象方法: 您得到的好处不仅是一个变量具有多个函数(方法),而且在一个方法中设置一个值,该值对于类来说是全局的,其他方法可以访问该值,因此假设您希望始终包含您的名称,您可以更进一步:

Class ChatterBox {

  function __construct($name) {
        $this -> name = (!empty($name)) ? $name : 'Mysterion';
  }

   public function set_intro() {

        $this -> intro = "My name is " . $this ->name . ".";

    }

   public function sayHello() {
        $a = 'Hello';
        $b = 'World';
        $c = $a.' '.$b;
        return $c . $this -> set_intro();
    }

    public function rambleOn() {

       echo $this -> intro . 'blah blah blah times 1,000';

     }

}

$small_talk = new ChatterBox("Rick");

echo $small_talk -> sayHello(); // Hello World! My name is Rick.

$small_talk -> rambleOn() // 'My name is Rick. blah blah blah times 1,000';

当然,OOP变得越来越复杂(就像我之前说的,PHP仍在追赶),但作为初学者,我认为将所有函数绑定在一起并能够共享变量等是很好的。也许lambda函数是事情发展的方式,但我仍然掌握了OOP的诀窍,我认为最好是两者兼而有之,而不是选择哪一个是“最好的”。特别是在您的示例中,lambda(匿名)函数(对我来说)并不真正理解为什么一个函数位于另一个函数中。在OOP中,这是有意义的,因为您可能需要根据上下文调用不同的选项/选项/等,同时不希望丢失对象中的数据,或者在跨对象使用函数时必须在函数之间来回传递值。

有几种方法。以下是最简单的:

function B($c){
    return $c;
}

function A(){
    $a = 'Hello';
    $b = 'World';
    $c = $a.' '.$b;
    echo 'blah blah blah times 1,000';
    B($c);
}

}
echo B();
但鉴于
B
不起任何作用,您可以选择:

function A(){
    $a = 'Hello';
    $b = 'World';
    $c = $a.' '.$b;
    echo 'blah blah blah times 1,000';
    return $c;
}

echo A();
我怀疑您想要在函数之间交换值以获得更大的输出。为此,您应该研究面向对象编程,PHP正在尽其所能赶上它

面向对象方法: 您得到的好处不仅是一个变量具有多个函数(方法),而且在一个方法中设置一个值,该值对于类来说是全局的,其他方法可以访问该值,因此假设您希望始终包含您的名称,您可以更进一步:

Class ChatterBox {

  function __construct($name) {
        $this -> name = (!empty($name)) ? $name : 'Mysterion';
  }

   public function set_intro() {

        $this -> intro = "My name is " . $this ->name . ".";

    }

   public function sayHello() {
        $a = 'Hello';
        $b = 'World';
        $c = $a.' '.$b;
        return $c . $this -> set_intro();
    }

    public function rambleOn() {

       echo $this -> intro . 'blah blah blah times 1,000';

     }

}

$small_talk = new ChatterBox("Rick");

echo $small_talk -> sayHello(); // Hello World! My name is Rick.

$small_talk -> rambleOn() // 'My name is Rick. blah blah blah times 1,000';

当然,OOP变得越来越复杂(就像我之前说的,PHP仍在追赶),但作为初学者,我认为将所有函数绑定在一起并能够共享变量等是很好的。也许lambda函数是事情发展的方式,但我仍然掌握了OOP的诀窍,我认为最好是两者兼而有之,而不是选择哪一个是“最好的”。特别是在您的示例中,lambda(匿名)函数(对我来说)并不真正理解为什么一个函数位于另一个函数中。在OOP中,这是有意义的,因为您可能需要根据上下文调用不同的选项/选项/等,同时不希望丢失对象中的数据,或者在跨对象使用函数时必须在函数之间来回传递值。

echo A(),B(1)B
,code>会执行此操作。您在那里编写的只是将函数A和函数B定义到全局空间中。当函数A只返回$c(在函数A中设置)时,为什么要将函数B放在函数A中?@LoganBesecker这就是本例中的一个例子。函数B($c)的实际指令集是无关的。(如果我正确理解了作者的意图)@dubvfan87这是可以理解的哈哈
echo A(),B(1)B
,code>会执行此操作。您在那里编写的只是将函数A和函数B定义到全局空间中。当函数A只返回$c(在函数A中设置)时,为什么要将函数B放在函数A中?@LoganBesecker这就是本例中的一个例子。函数B($c)的实际指令集是无关的。(如果我正确理解作者的意图)@dubvfan87这是可以理解的,我认为这是正确的方式。(使用create_函数)+1我正在使用PHP5.2。我必须研究create_函数。我认为这是正确的方法。(使用create_函数)+1我正在使用PHP5.2。我将不得不研究create_函数。您的方法还将调用函数A()中的所有其他内容。在这种情况下。。回音“废话废话1000次”;我正在努力避免这种情况。OOP可能会更好,但我也在努力避免这种情况well@RickRyan那么您想要
echo-blah-blah
返回$c
?也许,如果你能给我一个用例,我可以给你一个简单的OOP示例,让你走上正轨。你的方法还可以调用函数a()中的所有其他东西。在这种情况下。。回音“废话废话1000次”;我正在努力避免这种情况。OOP可能会更好,但我也在努力避免这种情况well@RickRyan那么您想要
echo-blah-blah
返回$c
?也许如果你能给我一个用例,我可以给你一个简单的OOP示例,让你开始正确的方向。