ちょっとした質問です
smarty3 では、テンプレート ディレクトリ $template_dir とコンパイル ディレクトリ $compile_dir が両方とも protected で変更されているのですが、なぜクラスの外から直接アクセスできるのでしょうか? ?
ソースコードの保護をプライベートに変更しましたが、依然としてアクセスできるのはなぜですか?
-----解決策---------
彼にはそのような定義はありませんか?
パブリック関数 __get($name) { $allowed = 配列( 'template_dir' => 'getTemplateDir', 'config_dir' => 'getConfigDir', 'plugins_dir' => 'getPluginsDir', 'compile_dir' => 'getCompileDir', 'cache_dir' => 'getCacheDir', ); if (isset($allowed[$name])) { return $this->{$allowed[$name]}(); } それ以外 { trigger_error('未定義のプロパティ: '.get_class($this) .'::$'.$name, E_USER_NOTICE); } <div class="clear"></div>