首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP函数--在外部函数中工作,但在内部不工作。

PHP函数--在外部函数中工作,但在内部不工作。
EN

Stack Overflow用户
提问于 2015-03-20 00:08:17
回答 2查看 63关注 0票数 1

我有下面的PHP代码,它存储在我正在使用的index.php文件中的一个单独的PHP文件中。

当不包含在函数中时,index.php文件中包含的页面()很好。

代码语言:javascript
运行
复制
  $_3_dart_score = $_POST["user-input"];
  $remaining_score = 501 - $_POST["user-input"];

然而,当它包含在一个函数中时,它似乎不起作用。

代码语言:javascript
运行
复制
<?php
function throw()
{
$_3_dart_score = $_POST["user-input"];
$remaining_score = 501 - $_POST["user-input"];
global $_3_dart_score
global $remaining_score
throw();
}
?>

我尝试过各种各样的方法,甚至从index.php页面调用函数,但是似乎没有什么效果。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-20 00:11:34

您需要从函数之外调用throw(),而不是在函数内部调用。您还应该考虑将变量作为参数传递,而不是依赖于全局变量。

票数 1
EN

Stack Overflow用户

发布于 2015-03-20 00:11:45

代码语言:javascript
运行
复制
function throw($input) {
    $_3_dart_score = $input;
    $remaining_score = 501 - $input;
    return array($_3_dart_score, $remaining_score);
}

list($_3_dart_score, $remaining_score) = throw($_POST["user-input"]);
  1. 摆脱global的废话。那是糟糕的形式。相反,返回这些值。我使用一个数组,这样我就可以同时返回两个数组。(它们实际上应该在不同的功能中单独完成,但您还没有完全完成)。
  2. 我将$_POST["user-input"]作为参数传递给throw(),因为您的函数不应该与其他代码紧密关联。这样,这个值可以来自任何地方,并且这个函数仍然可以工作。
  3. 我使用list()将数组中的这些值放入一行中自己的标量变量中。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29157219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档