19

可能重复:
PHP 函数的未定义变量问题

有人能告诉我为什么我的 PHP 包含文件中不断收到未定义的变量错误消息吗?

<?php

$page = 1;

if (isset($_REQUEST['page'])) {
  $page = $_REQUEST['page'];
}

function phpRocks() {
  require("includes/dostuff.php");
}

if ($search) {
  phpRocks();
}

?>

然后在 dostuff.php 中:

<?php echo $page; ?>

这是我得到的错误:


注意:未定义变量:第61/dostuff.php中的页面

Attn down voters/close requesters:没有显示任何研究工作?怎么会这样?我还应该添加什么?我为此困扰了半个小时,找不到任何其他回答这个问题的帖子。我是否需要成为 PHP 专家才能发布问题(因此我不会发布任何问题!)?

4

4 回答 4

15

马里奥明白了。做这个:

function phpRocks() {
    global $page;

    require("includes/dostuff.php");
}
于 2012-11-09T15:59:38.613 回答
8

您将文件包含在函数中。因此,所有包含代码的范围都是函数的范围。该变量$page在函数内部不存在。传入:

function phpRocks($page) {
    require "includes/dostuff.php";
}

phpRocks($page);
于 2012-11-09T16:00:41.130 回答
2

像这样在你的函数中添加全局变量

function phpRocks() {
  global $page;
  require("includes/dostuff.php");
}
于 2012-11-09T15:58:49.577 回答
1

您必须像这样将变量声明为全局变量:

function phpRocks() {
global $page;           //set variable to global
require("includes/dostuff.php");
}
于 2012-11-09T16:02:18.500 回答