[編集:初期の不適切な質問に対する謝罪。総書き換え]ファイル間の関数からのPHP変数の再利用
私はWordpressのサイトを持っていると私は3つの関連ファイルで探しています:。
- のfunctions.php
- header.phpの
- のindex.php(header.phpのを含んでいます)
外部フィードからfunction.phpの関数で天気データを取得し、そのデータをheader.php(サイトのすべてのページ)と一度に2箇所に表示しようとしていますindex.php(2番目のinstホームページにのみ表示されます)。私は、表示する最初のインスタンスを取得することができますが、私はのfunctions.phpでは、第二のインスタンス
とのトラブルを抱えている:
$weatherData = arctic_valley_weather();
echo round($weatherData['airTemp']);
:その後、header.phpの中で、
function arctic_valley_weather() {
function get_string_between($string, $start, $end){
//here's a function that just parses the data. not important
}
$fullstring = file_get_contents('http://www.cnfaic.org/library/grabbers/nws_feed.php');
$parsed = get_string_between($fullstring, 'arctic_valley,', 'marmot,');
$weatherValues = explode(",",$parsed);
$dateTime = date_create($weatherValues[0]);
return array(
'dateTime' => $dateTime,
'airTemp' => $weatherValues[1],
'relHumid' => $weatherValues[2],
'windSpeed' => $weatherValues[3],
'windDirection' => $weatherValues[4],
'windGust' => $weatherValues[5],
);
}
がわかりましたこれは、正確に温度(丸められた)を示す。 "18"としましょう。驚くばかり。この1つは間違って最初のインスタンスが正常に18
を示しているにもかかわらず、「0」を示し
echo round($weatherData['airTemp']);
:私はちょうどそれとまったく同じ結果を複製する際
トラブルは、index.phpの中で来ますそれはすべての関連データだと思います。何か飛び出す?
[MVCE](https://stackoverflow.com/help/mcve)を作成してみてください。また、あなたが問題となっている問題を正確に示すコードを作成してくださいving。できるだけコードを減らして、サイト構造と一緒に再度投稿してください(どのファイルに何が含まれているか)。それが立てば、誰も何が間違っていると言うことはできません。多くのことができます。 –
私が言うことの1つは、あなたが削除した部分がない限り、あなたの関数は全く動作してはならないということです。 '$ weatherValues'はどこにも定義されておらず、関数の外で定義されていればそれを使うことができません。それを使うには 'global'キーワードを使わなければなりません。そしてそれらがグローバルであれば、2番目の関数呼び出しに到達する前に何かが変更されている可能性があります。 –
ありがとうございます。これはあまり良くありませんでした。私は質問をもっとはっきりと書き直しました。 (関数などにはもっと多くのものがあった)。私はまだ何かを残しているかどうかはわかりませんが、私はそうは思わない。 – Lime