当前位置: 首页 > 面试题库 >

PHP:变量在函数内部不起作用?

冯沛
2023-03-14
问题内容
echo $path; //working
function createList($retval) {
    echo $path; //not working
    print "<form method='POST' action='' enctype='multipart/form-data'>";
    foreach ($retval as $value) {
            print "<input type='checkbox' name='deletefiles[]' id='$value' value='$value'>$value<br>";
    }
    print "<input class='submit' name='deleteBtn' type='submit' value='Datei(en) löschen'>";
    print "</form>";    
}

我究竟做错了什么?为什么$ path在createList函数外部正确打印,但是在函数内部无法访问?


问题答案:

因为它没有在函数中定义。

有几种方法可以解决此问题:

1)使用亚历克斯所说的话,告诉函数它是一个全局变量:

echo $path; // working

function createList($retval) {
  global $path;

  echo $path; // working

2)将其定义为常量:

define(PATH, "/my/test/path"); // You can put this in an include file as well.

echo PATH; // working

function createList($retval) {

  echo PATH; // working

3)如果特定于该函数,则将其传递给该函数:

echo $path; // working

function createList($retval, $path) {

  echo $path; // working

根据功能的实际工作原理,其中之一会起作用。



 类似资料:
  • 我有一个组件,我将一些数据放入变量中,以便在另一个函数中读取它。当我在构造函数中打印这个变量并在控制台上打印它时,我可以看到它,但是当我在另一个函数中执行同样的操作时,我没有定义它。我已经尝试将它声明为私有和公共,并得到相同的结果。 如何声明此变量以查看另一个方法中的变量? 这是我的组件: 编辑: 如果我把一个静态常数放在我的函数上,我可以得到数据: 但如果我这样做: 我得到了一个错误: 属性'm

  • 问题内容: function parts($part) { $structure = ‘http://’ . $site_url . ‘content/’; echo($tructure . $part . ‘.php’); } 该函数使用在页面顶部定义的变量,但是此变量未传递到该函数中。 我们如何使它返回到函数中? 问题答案: 添加第二个参数 您需要将其他参数传递给函数: 如果关闭 如果您希望使

  • 问题内容: 我刚刚开始自学Python,此脚本需要一些帮助: 我想得到它。 问题答案: 你快到了。您正在尝试修改全局变量,因此必须添加以下语句: 如果运行以下版本,则会看到您的版本中发生了什么: 输出: 运行它的方法,最终尝试在中修改函数的局部变量,这基本上是未定义的行为。请参阅文档中的警告: 注意: 默认 本地语言的 行为如以下功能所述:不应尝试对默认 本地 字典进行修改。如果需要在函数返回后查

  • 问题内容: 我正在使用函数,这样我的程序就不会一团糟,但我不知道如何将局部变量变成全局变量。 问题答案: 这是两种实现相同目的的方法: 使用参数并返回(推荐) 运行时,将获得以下输出 使用全局变量(永远不要这样做) 现在您将获得:

  • 我正在使用Jasper和JasperSoft Studio创建报告。这是一个maven sping引导应用程序。报告工作良好。数据连接也正常工作。 我只对内置函数(如sum()、trim()、replace()…)有问题。我也不能编写自定义函数。当我调用其中一个函数时,生成报告时出现错误。以下消息: 在Jaspersoft studio中一切正常,错误只在我生成报告时出现。 在Jaspersoft

  • 我试图在windows server 2012上的环境变量路径中添加PHP目录,单击高级系统参数- %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1。0\ ; c:\wamp64\bin\php\php7。2.10\