web-dev-qa-db-ja.com

PHPインクルードファイルの未定義の変数エラー

重複の可能性:
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; ?>

これは私が得ているエラーです:


通知:未定義の変数:ページイン /dostuff.php オンライン 61

有権者/クローズリクエスターに注意を向ける:調査努力を示していませんか?どうして?他に何を追加する必要がありますか?私はこれに30分困惑していて、この質問に答える他の投稿を見つけることができません。質問を投稿するには、PHPエキスパートである必要があります(したがって、質問は投稿しません!)??

15
Zoolander

マリオはそれを持っています。これを行う:

function phpRocks() {
    global $page;

    require("includes/dostuff.php");
}
12
ell

関数内にファイルを含めています。したがって、含まれているすべてのコードのスコープは関数のスコープです。変数$pageは関数内に存在しません。それを渡します:

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

phpRocks($page);
7
deceze

そのような関数にグローバル変数を追加します

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

次のように、変数をグローバルに宣言する必要があります。

function phpRocks() {
global $page;           //set variable to global
require("includes/dostuff.php");
}
1
user1607528