2017-07-31 16 views
0

さまざまな関数定義を含むPHPファイルの要件に基づいて特定の関数を含める方法。PHPでrequire_once()またはinclude()関数を使用して特定の関数を含めるにはどうすればよいですか?

たとえば、
PHPファイルのfunctions.php私は関数Cを使用するother.phpファイル( '/ F /のfunctions.php')するrequire_onceを使用する必要が3つの()、B()関数およびC()
が含ま。

私は、cファイルをother.phpファイルにrequire_once()関数を使用して含めるだけで、他の関数は含めないでください。

+3

他の機能(a&b)が含まれていると何が問題になりますか? –

+1

まったく問題ありません。私は、今必要でない不要な機能の追加を避けたいだけです。 – xyz

+0

@xyzそれを行う方法はありません。すべてのハッキングは機能を含むだけのオーバーヘッドより高いオーバーヘッドを持つでしょう。 – Kaspars

答えて

1

これを行う方法はありません。あなたはスポーツのためにそれを行う場合は、周りに行く方法がありますが。

これはですが、特にお勧めしません。です。本当に、やってはいけません。どうすればいいのですか:

1)ファイルをテキストとして読んでください。

2)機能ブロックを見つけ、それ

3)evalを介して実行取り出します。

これにより、ファイルに設定されているグローバル状態が実行されなくなります。あなたが望むかもしれないし、したくないかもしれない。

SuperClosure私はクロージャをシリアライズすると信じていますが、これはデフォルトではPHPがサポートしていません。

PHP7 abstract syntax treeを活用して、関連する機能を含めることもできます。例えば、AB、およびCの3つの関数が定義されているとします。 Aは内部でBを使用します。 Aを含める場合は、Bも含めるとよいでしょう。

これは、ファイル全体を含むだけでなく、ベンチマークで間違っていることを自由に感じることができます。


namespacesです。クラスと関数の両方でサポートされています。

1

期間はありません。 PHPにはモジュールシステムは一切ありません。関数をインクルードするには、ソースコードファイル(include)を実行するだけです。ファイル内のコードを実行することによって、追加機能やファイル内のその他のものを定義します。実行するコードの特定の部分だけを選択的に選択することはできません。

+0

本当ではありません。手動でファイルを解析し、関数をテキストとして抽出し、 'eval'を通して実行することが可能です。非常に推奨されていませんが(しないでください)、それは実行可能です。 – Kaspars

+1

@ Kasparsそれは私がやってお勧めすることではない、同じファイル内のコードの他の部分との関係を定義する場合、コードは実行可能ではありません。 – deceze

+0

@deceze同意します。 :) –

関連する問題