0

クラスがあります...

class myclass {}
$myclass = new myclass();
$myclass->frigin = 'awesome';

後で別のPHPファイルにいくつかのインクルードがあります...

include('hippie_deflectors.php');

ただし、そのインクルード中の PHP はまったく表示されません$myclass

PHPを従わせる最も簡単な方法は何ですか?


このファイル... .com/[module]/requested_page.php

...次の上から下をフィルタリングする2つのインクルードがあります...

セット1を含む


.com/system/header.php

.com/system/header_classes.php[$myclassここで定義されています]

セット 2 を含む


.com/[module]/index_get.php

.com/system/template_1.php

.com/system/includes_js.php

.com/system/scripts/onload.js[$myclassここでは未定義]

4

2 に答える 2

0

私は自分の過ちに気づきました。うまくいけば、他の誰かがそこから学ぶでしょう。スコープの問題(PHPファイルに別のファイルが含まれていて、クラスを関数にパラメータとして渡すことによってのみクラスにアクセスできる)がありましたが、最終的に気付いたのは、JavaScriptファイルが文字列ではなく文字列として出力されていることでした。含まれています!これは、JavaScript ファイルによってブラウザーが 2 番目の要求を行い、そのファイルのみが PHP によって解析されることを意味します。

視覚的に...

  • Client Request [script要素の文字列で出力されるJavaScriptファイル]
  • クライアントはページ結果を受け取ります。
  • クライアントがスクリプト ファイルを要求します。
  • 2 番目の別のリクエストで PHP によって解析されるスクリプト ファイル。

ありがたいことに、私は高度にモジュール化するようにプログラムしているので、クラスを宣言し、その新しいコピーを作成してから、クラス全体ではなく、必要な変数の小さいながらもより普遍的なチャンクを含むモジュラー PHP ファイルを含めることができました。 .

これは、クラスをパラメーターとして関数に渡す前に、X 個のインクルードでしかクラスにアクセスできないという関連する別の問題を解決しません。

于 2012-10-25T20:43:46.500 に答える
0

あなたの質問は理解するのが少し難しいです。しかし、これはうまくいきます:

ファイル: File1.php

class myclass {}
$myclass->frigin = 'awesome';
include('hippie_deflectors.php');

ファイル: hippie_deflectors.php

include('different_file.php');

ファイル: different_file.php

var_dump($myclass);

印刷されます:

object(stdClass)#1 (1) { ["frigin"]=> string(7) "awesome" } 

これはあなたが持っている設定ですか?

于 2012-10-25T18:45:33.607 に答える