• ベストアンサー

うまくPHPファイルを読み込めない

下記の2つのクラスがあり、AClass.phpからBClass.phpをincludeしています。 AClass.php └include BClass.php ところが、AClass.phpからうまくBClass.phpをincludeできないため、 ところどころデバッグ文を仕込んで調査したところ、 静的に変数を呼び出すところがあると、うまくincludeできないようでした。 具体的には、 AClass.php内で static public $AParam = array(...); とstaticな変数を定義しています。 BClass.php内で、 $name = get_class($this); // ここでAClass.phpの名前を取得しています if(isset($name::$AParam)){... // ★AClass.phpのstatic変数、$AParamを呼び出そうとしています★ ★の部分のように、「クラス::パラメータ」があると、 どうやらAClass.phpからBClass.phpをincludeできずに終わってしまい、 ★の部分がなければ、きちんとincludeされるようです。 何かお心当たりありませんでしょうか。 設定等でも何かお心当たりありましたら、ご教示いただければ幸いでございます。 PHP Version => 5.3.0 Server version: Apache/2.2.13 (Unix)

  • PHP
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.1

読み込めてないというか構文エラーなのでは? $className::$varName はアクセスできません(php5.2) $script = 'return ' . $className . '::$varName;'; $var = eval($script); とでもやれば取れるには取れますが..

その他の回答 (1)

回答No.2

とにもかくにも、まず、エラーを全部表示してみてはいかがでしょうか。 <?php error_reporting(E_ALL); ini_set('display_errors', 'On'); ?> としてやれば、全てのエラーが出力されます。

関連するQ&A

  • array

    includeでarrya構文で記述した変数を読み込んで、 arrayで定義した1~6までの変数ぶんHTMLを繰り返すにはどうしたらいいですか? --------------------------- include.php $name=array( 0=>"太郎", 1=>"花子", 2=>"四郎" ); --------------------------- <?php include('include.php'); ?> <html> <body> <TD><?php echo $name ?></TD> </body> </html> ---------------------------- <TD><?php echo $name ?></TD> の部分を変数の数だけ記述するのではなく、 一行で繰り返す方法はありますか? よろしくおねがいします。

    • ベストアンサー
    • PHP
  • PHPでUndefined variableエラー

    PHPでUndefined variableエラーが発生します: <b>Notice</b>: Undefined variable: result in <b>/opt/lampp/htdocs/samples/chapter3/3-2/gen_defined_vars.php</b> on line <b>58</b><br /> どうやって直せばいいのか教えてください。 58行目がおかしいと出ていますが、$resultが未定義なので54行目のことだと思います。 ちなみに 9ー12行目は自分で直しました。お願いします。 1 <html> 2 <head> 3 <title>環境変数コード生成フォーム</title> 4 </head> 5 <body> 6 <?php 7 // 選択リストの値を取得 8 $name = "param"; 9 if ( isset($_POST[$name]) ) { 10 $selected_value = $_POST[$name]; 11 } 12 //$selected_value = isset($_POST[$name]) ? $_POST[$name] : ""; 13 14 // 定義済み変数を取得 15 $array = get_defined_vars(); 16 17 // 配列から選択リストを作成する関数 18 // パラメータ:配列/選択リスト名/選択値 19 function disp_list($array, $name, $selected_value = "") { 20 echo "<select name=\"" . $name . "\">"; 21 while (list($value, $text) = each($array)) { 22 echo "<option "; 23 if ($selected_value == $value) { 24 echo " selected "; 25 } 26 echo " value=\"".$value."\">" . $value . "</option>"; 27 } 28 echo "</select>"; 29 } 30 31 // 入力内容を処理する 32 $temp = "<?php echo \$_SERVER[\"%s\"] ?>"; 33 if (isset($_POST["param"])) { 34 $param = $_POST["param"]; 35 $result = sprintf($temp, $param); 36 } 37 else { 38 $param = ""; 39 } 40 41 ?> 42 <form method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>"> 43 <table cellpadding="10"> 44 <tr> 45 <td>環境変数を選択:<br /> 46 <?php echo disp_list($array["_SERVER"], $name, $selected_value); ?> 47 <input type="submit" value="作成" name="sub1"> 48 </td> 49 </tr> 50 <tr> 51 </tr> 52 <tr> 53 <td>作成されたコード:<br /> 54 <textarea name="ta1" rows="3" cols="40"><?php echo $result ?></textarea> 55 </td> 56 </tr> 57 </table> 58 </form> 59 </body> 60 </html>

    • ベストアンサー
    • PHP
  • PHP SESSION変数の削除について

    PHPでブラウザを×で閉じた場合、SESSION変数 の廃棄はどうすればよいのでしょうか? ガーペジコレクション(PHP.INI等の設定)に任せておけばよいのでしょうか? ちなみにログアウトの際は下記のプロシジャを実行しています。 ----------------------------- <?php session_start(); // セッション変数を全て解除する $_SESSION = array(); // セッションを切断するにはセッションクッキーも削除する。 // Note: セッション情報だけでなくセッションを破壊する。 if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } // 最終的に、セッションを破壊する session_destroy(); ?> -----------------------------

    • 締切済み
    • PHP
  • jquery,ajaxによるphp通信でnull

    初めまして。 現在jqueryを勉強中の学生です。 いろいろなサイトを参考にしつつ、試しににjquery・ajaxを使ったphpとの通信を試みているのですが、文字列のやりとりがうまくいきません。 数字ではうまくいくのですが、文字になるとalertの部分でnullと返されてしまいます。 アドバイス等頂ければと思います。 よろしくお願いいたします。 以下部分的ではありますがコードを示します。 (jqueryはjquery-1.11.1.min.jsを使用) [js] $.ajax({ type: "POST", url: "step1.php", data: send_data, success: function(receive_data) { var parseAr = JSON.parse(receive_data); alert(parseAr[0]['name']); }, error: function(XMLHttpRequest, textStatus, errorThrown) {alert('Error: ' + errorThrown); } }); return false; [php側] <?php if(isset($_POST['name'])) { $result = array(); $result[] = array('name'=>'織田', 'age'=>'33'); $result[] = array('name'=>'織田', 'age'=>'33'); echo json_encode($result); } else { echo json_encode('The parameter of "name" is not found.'); } exit; ?>

  • phpで 変数の中にデータが入っているかどうかを判別する

    phpで変数の中が空なら・・・ という命令を書く場合 if($hoge == "")とか if(isset($hoge)) という風に書くとおもうんですが、 変数の中身が配列で、その配列の一つでもデータが入っているかどうかを 判別する方法はないのでしょうか? 例えば、 $hoge = array([1] = りんご,[2] = )  と  $hoge = array([1] = ,[2] = ) で、表示結果を変えたいということです。 配列を一旦分解するしかないのでしょうか?

    • ベストアンサー
    • PHP
  • Smarty/pluginsファルダ内 function.***.php ファイルのデバッグ

    Smarty pluginsファルダ内にあるfunction.***.phpファイルのデバッグはどうやればよいのでしょうか? やりたいこと。 function.***.phpファイル内の変数内容を、処理の途中ごとで確認したい。 出力時ではなくて、このファイル内の処理の途中の変数の値を見たいのですが.. print $var_name;とやっても何も表示されませんでした。

    • ベストアンサー
    • PHP
  • phpファイルについて

    phpファイル(xxx.php)の<?php ?>で囲われた部分は、外部から読み取られる事は絶対に出来ないのでしょうか? データベースなどの設定(HOST名、データベース名、データベースパスワード)をドキュメントルート内のphpファイルのデータベースクラスに直接記述しています。 これって安全ですか? 一部の参考書等では、重要な設定等は、ドキュメントルートの外にファイルを置いておいて、インクルードする方法が書かれています。 phpファイル(xxx.php)の<?php ?>で囲われた部分が、絶対に外部から読み取られないのであれば、現状のまま運用しようと思っていますが、ご教授下さい。

    • ベストアンサー
    • PHP
  • PHP MySQLでエラーがでてしまいます。

    PHP MySQLからデータを取得したいのですが、以下のエラーが出てしまい原因が分かりません。 詳しい方お願い致します。 <b>Warning</b>: json_encode() expects exactly 1 parameter, 2 given in <b>/home/users/2/***.**-********/web/****************/php/seupPharmacyData.php</b> on line <b>21</b><br /> エラーが出るコードは以下になります。 <?php include "db.php"; $sql = "SELECT * FROM user_data"; $query = mysql_query($sql, $db) or die("クエリの送信に失敗しました。<br />SQL:".$sql); $result= array(); while ($row = mysql_fetch_object($query)) { $result[] = array( 'name1' => $row->name1, 'name2' => $row->name2, 'name3' => $row->name3, 'id' => $row->id, ); } //jsonとして出力 header('Content-type:application/json; charset=UTF-8'); echo json_encode($result,JSON_UNESCAPED_UNICODE); ?>

    • ベストアンサー
    • PHP
  • PHPコードの読解お願いいたします

    PHP初心者です。 環境→XAMPP1.7.0でアパッチなど一括ダウンロード OSはヴィスタ 以下コード中分からない点がありますので、ご指導よろしくお願いいたします。(細かい点は省略しています) なお●の部分が分からない点です。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <?php $city=array("東京""大阪""名古屋""神奈川") ?> <h2>出発地のご案内</h2> <form> <select name="city"> <?php foreach($city as $name=>$value){  ● print "<option value={$value}>{$value}</option> } ?> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ●・・foreach内の$nameと$valueの変数はそれぞれ何を表わしているのでしょうか。 私の教科書的理解で申しますと、$nameはキー用の変数を表わし、$valueは値用の変数を表すものだと思っております。 そこから考えると、$cityに格納されている”東京"、"大阪"、"名古屋"、"神奈川”それぞれの文字列はキー用の$nameに格納される、なら残った$valueには何が入るのでしょうか。 そもそもforeach($配列名 as $キー用の変数=>$値用の変数)という記載の仕方ができるのは、事前に配列にて 例えば$配列名=array("キー0"=>値0、"キー1"=>値1・・) といった記載がされている場合に有効なのではないかと思うのですが。 繰り返しますが、おそらく$cityに格納されているそれぞれの文字列がキー変数を表わす"$name"に代入されると思うのですが、それでは値用の変数$valueにはいったい何が格納されるといういうのでしょうか。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ◆完全に、privateなメソッドにしたい

    クラスA内に、 privateで、staticなメソッド「hogehoge」を作った時、 完全に、「hogehoge」の中の変数・Inputパラメータ、Outputパラメータだけで処理をさせたいです。 ◆具体例:(こういうのをできないようにしたい) クラスA.h static 変数X static 変数Y static メソッド hogohoge (略) クラスA.cpp メソッド hogohoge (略) { z = 変数X + 変数Y } //---------------------------------- ◆やりたいこと メソッド上のように、変数Xや、変数Yにアクセスできてしまうのを、制限したいのです。  例えば、pragmaとかを書いて、オプションで制限できたりできないでしょうか? 完全に、「hogehoge」の中の変数・Inputパラメータ、Outputパラメータだけで処理をさせたいです。 また、今回はstatic 変数だけを引き合いに出しましたが、  他にも「実はアクセスできちゃうんだよね」というものがあれば、  (例えばdefineとか?) ご教授頂けるとさらに嬉しいです。 .

専門家に質問してみよう