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のページ

有権者/クローズリクエスターに注意を向ける:調査の努力を示していませんか?どうして?他に何を追加する必要がありますか?私はこれに30分困惑していて、この質問に答える他の投稿を見つけることができません。質問を投稿するには、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 に答える