いくつかのサンプルコードから始めたので、なぜこれらのシナリオがすべて機能しないのか分かりません。私はそれが使用 '部分に失敗した私の大規模なプログラムにスクリプトの内容をインライン化すると、コマンドラインサンプルコードを関数に入れると、なぜphp 'use'が失敗するのですか?
<?php
//Script in standalone file: script.php
//...define some stuff
require REQUIRED_FILE;
use Aws\Ses\SesClient;
//now do some stuff
?>
から実行すると、ファイルscript.php呼ば
スクリプトの例のコードが正常に動作します。
<?php
//class-of-bigger-program.php
//function called from some other part of program
function foo(){
//paste the contents of the same script above
//...define some stuff
require REQUIRED_FILE;
use Aws\Ses\SesClient;//CRASH HERE
// now do some stuff
}
?>
しかし、その大きなプログラムの同じ場所にスクリプトを含めるとうまくいきます。
<?php
//function called from some other part of program
function foo(){
//paste the contents of the same script above
include 'script.php';
}
?>
なぜこの場合ですか?私はちょうど '使用'コマンドを使用して逃していますか? 私は 'use'と 'include'と名前空間の違いを理解するのが難しいことを発見しました。
なぜ機能に使用を追加しますか?あなたの 'class-of-largerer-program.php'が本当にクラスであれば、あなたは ' require REQUIRED_FILEです。 Aws \ Ses \ SesClientを使用します。クラスYourClass {...} ' どのエラーが表示されますか? – olibiaz
エラーがあっても白い画面が表示される error_reporting(E_ALL);ini_set( 'display_errors'、true); 私は関数の途中でrequireを呼び出すべきではないと言って正しいですか?クラスのトップでのみ? – Chris
はいFred-ii-そこに引用符があります - それを表示するために投稿を編集しました。 – Chris