【发布时间】:2016-11-27 16:38:41
【问题描述】:
我更喜欢使用 Python 语言进行编程,但必须使用 PHP 来完成特定的网站应用程序项目。
在 PHP 中,我试图将一个值从函数“返回”到主程序环境(用于后续计算),但无论我尝试什么,在我的函数中计算的值都不会返回值(但是从函数回显效果很好)。
在 Python 中,我从来没有遇到过返回变量的问题:即,从函数返回的所有值都可供主程序和/或调用产生返回值的函数的其他函数使用和访问。
谁能告诉我如何解决这个问题?在过去的两天里,我一直在搜索谷歌和网站 ike stackoverflow,但没有成功。我有许多 O'Reilly 计算机书籍,包括许多关于 PHP 的书籍,其中我交叉引用了我的研究并阅读了有关 RETURN 函数的所有内容 - 似乎我做的一切都是正确的,甚至专门声明了要返回的值。至关重要的是,我能够返回值并访问这些值以便继续开发此项目 - 否则,如果我无法返回值以进行进一步处理,我将陷入困境!
这里是相关的代码片段:
// DECLARE FUNCTIONS
// FUNCTION
function Calculation_IsArray ($ArrayAny){
if (is_array($ArrayAny)) {
echo '<div>THIS VAR IS AN ARRAY</div>';
$Var_IsArray = TRUE;
return $Var_IsArray;
} else {
echo '<div>THIS VAR IS **NOT** AN ARRAY</div>';
}
}
在声明函数并进行一些初始计算以获取数组进行检查后,我将上述函数调用如下:
// CALL FUNCTION
Calculation_IsArray($ArrayOfValues);
我希望程序调用函数 Calculation_IsArray() 并将要检查的数组 ($ArrayOfValues) 传递给它。您可以从下面的输出中看到,该数组已通过并检查并确认为数组类型,并且 FOREACH 循环以及 IF/ELSE 条件都工作正常并回显了正确的输出。但是,上面的代码没有返回任何值,因为您可以看到当我检查返回值(即检查的数组)时回显的 NULL 值,可以在“返回”之后从主程序访问。
以下是回显到浏览器屏幕的结果(输出):
这个 VAR 是一个数组
返回数组 =
空
价值 $Var_IsArray =
空
阵列键元素数 = 2
数组键元素是数字
键 = 0,值 = 数组
阵列键元素数 = 2
数组键元素是数字
KEY = 1,VALUE = 数组
我在 stackoverflow 上进行了搜索,发现了类似问题的报告(我什至尝试测试这些解决方案的建议,例如在我的函数中的不同位置放置 return 以测试它会在哪里工作),但没有任何工作,并且根据我所读到的,如果明确告诉 RETURN,PHP 会返回值,这种返回值失败是不合逻辑的。
非常感谢您在这件事上的任何帮助!
[上述原题提交后]:
我现在正试图通过创建一个名为 TestReturn.php 的测试脚本来隔离我的问题。
我在该脚本中放置了以下代码,但仍然没有返回值!
// DECLARE FUNCTIONS
// FUNCTION
function Calculation_IsArray ($ArrayAny){
if (is_array($ArrayAny)) {
echo '<div>THIS VAR IS AN ARRAY</div>';
$Var_IsArray = TRUE;
return $Var_IsArray;
} else {
echo '<div>THIS VAR IS **NOT** AN ARRAY</div>';
}
}
// BEGIN MAIN PROGRAM
$x = array(1, 2, 3, 4, 5, 6, 7);
Calculation_IsArray($x);
// COME BACK TO HERE AFTER THE FUNCTION RETURNS CALCULATED VALUE
echo '<div>HERE IS THE RETURNED VALUE AND VAR_DUMP BELOW:' . $Var_IsArray . '</div>';
var_dump($Var_IsArray);
这里是以 HTML 格式输出到浏览器选项卡/窗口/终端:
这个 VAR 是一个数组
下面是返回值和 VAR_DUMP:
空
“队长,这不计算!”,也就是说,这对我来说没有意义,为什么 PHP 不返回我的值,我特别告诉它返回到主程序!
我已经尝试了所有可能的编码方式,包括:
return $variable;
return ($variable);
return() ; // i.e. I read somewhere that PHP by default returns the last calculated value in a function.
return ;
为什么 PHP 没有将我的值/变量返回给主程序?
【问题讨论】:
-
为什么不在 else 块中返回 false?
-
如果您可以发布实际尝试使用返回值的代码会有所帮助。
-
谢谢,朋友们!在我发布原始帖子后,我回去做了一些测试,并使用简化代码更新了此处的帖子,实际上尝试使用此处的返回值让你们复制和粘贴问题的完整隔离代码。我尝试过使用 return false,但默认情况下 PHP(我读过)返回 false/NULL。
-
你如何将
$Var_IsArray转储到它的功能范围之外?
标签: php return return-value