前提・実現したいこと
function.php内に下記のような記述があります。
PHP
1function test($name){ 2 3 if($name == 'store-a'){ 4 5 $GLOBALS['test_name'] = 'aです'; 6 7 } elseif ($name == 'store-b'){ 8 9 $GLOBALS['test_name'] = 'bです'; 10 11 } 12 13} 14 15function test_view(){ 16 17 $store = ["store-a", "store-b"]; 18 19 foreach($store as $val){ 20 21 test($val); 22 23 echo $test_name; 24 } 25} 26
html
1 <?php require('function.php'); ?> 2 <?php store_page(); ?> 3
HTMLファイルからstore_page()を呼び出して【aですbです】と表示されるようにしたいです。
発生している問題・エラーメッセージ
HTML
1 require('function.php'); 2 $store = ["store-a", "store-b"]; 3 4 foreach($store as $val){ 5 6 test($val); 7 8 echo $test_name; 9 } 10
これの結果は正常に【aですbです】と表示されます。
うまく表示されないのは下記のコードです。
HTML
1 require('function.php'); 2 test_view(); 3
これは何も帰ってきません。test_view()内で呼び出しているtest($val)の関数が正常に動いていないように思います。
試したこと
関数を入れ子にしてみましたがダメでした。1日悩みましたがお手上げです。ご教示いただけますと幸いです。
補足情報(FW/ツールのバージョンなど)
PHP 7.3.12
HTML5
問題点がよくわからないです。問題点を整理するために、第三者の環境でも動作できそうなミニマルなコードを起こし直してみると良いです。(質問内に示していないひみつなコードの存在など)質問者さんの抱えている環境でしか動かないコードは、誰も試せないので、カンのいい人にしか伝わらないので回答率が下がります。また、「ダメでした」とは具体的に何が起きたのか、エラーメッセージがどこかに残されたのか、客観的に分かる情報を添えてほしいです。
ご連絡ありがとうございます。
実際のコードより大分簡素化したつもりでしたがディレクトリから配列を取得するコードが混ざっていたりして回答者様の方でテスト出来るコードではなかったため修正させていただきました。
試したことについては改めて追記させていただきたいと思います。
回答1件
あなたの回答
tips
プレビュー