ちょっと整理してデータベース関連のphpファイルを自分のフォルダに移動するまで、私の小さなプロジェクトではうまくいっていました。その後、物事は奇妙になりました。Require_onceはすべての機能に影響しないようですか?
function listTasks() {
require_once("db/mysqliFunctions.php");
// Get entries using mysqli.
$tasks = getEntries();
echo "<pre>";
var_dump($tasks);
echo "</pre>"; // program works fine this far.
$bm = getBiggestMonth(); // program breaks somehow during this function call.
マイ:次のように開始し
function getEntries() {
require_once("mysqliVariables.php");
$mysqli = new mysqli($dbHost, $dbUname, $dbPwd, $dbName);
$sql = "statement...";
$result = $mysqli->query($sql) or die($mysqli->error);
echo $dbHost; // prints host
return $result;
}
function getBiggestMonth() {
require_once("mysqliVariables.php");
$mysqli = new mysqli($dbHost, $dbUname, $dbPwd, $dbName);
echo $dbHost; // prints nothing! why?
$sql = "statement...";
$result = $mysqli->query($sql) or die($mysqli->error); // this line does not run, of course.
return $result;
}
私は別のファイル(フォルダ)で別の関数を使用してこれらの関数を呼び出すために、:
私はここに二つの機能を使用しようとしています変数は、そのようなPHPファイルにあります?
<?php
$dbHost = "host";
$dbUname = "username";
$dbPwd = "password";
$dbName = "databasename";
>
funtionの呼び出し順序を切り替えると、getBiggestMonth()は正常に実行され、もう一方は正常に実行されません。また、すべては、すべてのファイルが同じフォルダ内にあったときに正常に機能しました(関数はクラス内の静的関数でしたが、問題ではないはずです。同じ問題がここに続きます)。可変スコープがここでどのように異なる可能性があるか、そしてrequire_onceは他のものを世話するべきです。助けて?
しかし、既に要求されているので、再度要求する必要はありませんか? $ dbHostがgetBiggestMonth()にどのようにエコーされていないかはよくわかりません。なぜなら、変数がまだ存在しなければ、それらは必須で、そうであれば何もしないからです。だからそれは常にエコーする必要がありますか? – hannu40k
私は上記の更新された答えでそれをさらに説明しようとしました。 – Treffynnon
ああ!今、私は分かる。それはphp.net/manualに入れた方法よりも理解しやすいものでした。そして、実際には今、うまくいくようです、ありがとう! – hannu40k