ホームページ > バックエンド開発 > PHPチュートリアル > PHP 名前空間に関する関連質問 非常に言葉にならない質問です。

PHP 名前空間に関する関連質問 非常に言葉にならない質問です。

WBOY
リリース: 2016-06-13 12:06:45
オリジナル
839 人が閲覧しました

PHP 名前空間の問題...非常に言葉にならない質問...
小さなコードをいくつか入力してください


<br /><?php<br />//用来定义一个继承Smarty的子类,在构造函数中实现基本的路径配置.....<br />namespace Smarty;<br /><br />class Smarty_Test  {<br />    function setName(){<br />    	echo 'Name';<br />    }<br />}<br />
ログイン後にコピー


<br /><?php<br />use Smarty\Smarty_Test;<br /><br />$smarty = new Smarty_Test();<br />$smarty->assign('name','Ned');<br />$smarty->debugging = true;<br />$smarty->display('index.tpl');<br />?><br />
ログイン後にコピー


コードは上記のとおりで、非常に単純です。2 つのコードのファイル構造は同じディレクトリにあります。実行すると、クラスが見つからないと表示されます。
致命的なエラー: クラス 'SmartySmarty_Test' が ...... にありません。私も ThinkPHP フレームワークで名前空間を使用していますが、問題はありません。新しいものを作成するにはどうすればよいですか? プロジェクトにファイルを入れてテストしても動作しません... ZEND STUDIO エディタでも Smarty_Test クラスの存在を表示できますが、動作しません。実行するととてもイライラします

-- ----解決策のアイデア---------------------

良い LLL ------解決策のアイデア----------------------

ファイルがロードされていませんSmarty_Test クラス定義を含む------ 解決策----------------------

はい、含めます または自動読み込みを設定します


spl_autoload_register();<br />use Smarty\Smarty_Test;<br /> <br />$smarty = new Smarty_Test();<br />$smarty->assign('name','Ned');<br />$smarty->debugging = true;<br />$smarty->display('index.tpl');
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート