从PHP函数中获取特定值
我知道下面的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()
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示例,让你开始正确的方向。