- ベストアンサー
PHP returnについて
- PHPのreturnについてお伺いします。外部ファンクションを使って値を返す方法ですが、うまくいかないようです。どこが間違っているのでしょうか?
- test_1.phpとtest_2.phpの結果がうまく渡せないようです。どうすれば正しく結果を渡せますか?
- 申し訳ありませんが、お助けいただけないでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
(1) > どうもうまくいかないのです。 どううまくいかないのかもう少し具体的に提示した方がいいでしょう。 例えば、 なにかエラーメッセージが出てきましたか。 $aにどんな値が入っていましたか。 またそれはどうやってわかりましたか。 (2) test1.phpとtest2.phpに分けず、1つのファイルに関数定義までまとめて書いたら期待通りの値が$aに入りますか。 まだおかしいなら、関数定義か関数の使用方法にミスがある可能性が大きいでしょう。 大丈夫だったなら、2ファイルに分けたことによるミスが発生しているということでしょう。 例えばrequire_once()周り、各ファイルの最初のほうや最後のほうの書き方、など。 大胆にファイル名や関数名を変えてみると何らかのミスを発見できるかもしれません。 (3) その他。一見何の関係もなさそうな別の場所(別の関数や別のファイル)でエラーが 起きていたり予期せぬ出力があったりで、注目部分の処理が実行されていないのかもしれません。 その辺も注意して見てみてはどうでしょうか。
その他の回答 (3)
- php_work
- ベストアンサー率50% (1/2)
ログを強制的に出力してはいかがでしょうか。 例えば、test_2.phpに「echo "$data1";」とか、渡してきた値が正しいかどうか、それぐらいは確認できるでしょう。 ご参考まで。
お礼
ありがとうございます。 No.3様のお礼に書いたとおりなのですが、test_2.php上では問題なく処理が出来ています。 $dataには正しく足された数値の10が入りますし。 上記のプログラムは一部簡略化したもので、実際はもう少し複雑な計算が行われていますが、概ね上記の通りです。
- utun01
- ベストアンサー率40% (110/270)
<?php 内容 ?> にしていますか? 当方の検証環境ではNo.1さんの修正のみで動作します。 動かない様であれば設定の可能性もあるので、エラーログ等記載された方が良いかもしれません。
お礼
ありがとうございます。 <?PHP ?>で囲んでありますし、上記の通りファイル名も.phpです。 No.3様の言う通り、一度まとめた上で検証したいと思います。(決行書き換えないといけないものが膨大ですが・・・)
- himajin100000
- ベストアンサー率54% (1660/3060)
未検証。 $a = get_data(b,c); じゃなくて $a = get_data($b,$c); が正しいっつー凡ミスとか
お礼
ありがとうございます。 一度外部ファンクションを取りやめて、同じphp内に記述しなおしてみます。 いろいろありがとうございました
補足
すみません、そこは当方の質問時の記述ミスでした。 実際の方は$付いています。 ここまで簡略化したプログラムでも動かないとなると、もっと他に凡ミスがあるのでしょうか・・・??
お礼
ありがとうございます。 1) var_dumpや、echo/printでも随時出力をかけているのですが、$dataはなにも入っていません。 2) そうですね。一度まとめてみようと思います。そのためには結構書き換えないといけないのですが、仕方ありません・・・ 3) 直前の処理までは問題なく動いているのを確認しております。 test_2.phpの $data1 と $data2 にはそれぞれtest_1.phpのbとcの値、「5」が入っていて、test_2.php上では$dataに正しく「10」と結果が出力されるので、どうももっと根本の部分で、なにか書き間違えをしているような気がするのです・・・