• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP4でのSmarty派生クラスの定義について)

PHP4でのSmarty派生クラスの定義について

このQ&Aのポイント
  • PHP4でSmarty派生クラスの定義方法を教えてください。PHP4では、privateが使えないため、修正が必要です。
  • PHP4では、コンストラクタ名はクラス名になります。また、__destructはコンストラクタ名と同じで良いです。
  • MySmartyというSmarty派生クラスを示すPHP4のサンプルコードの修正方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

class MySmarty extends Smarty { var $_db; function MySmarty() { parent::Smarty();//コレで親を叩ける(はず) $this->template_dir="../templates"; $this->compile_dir="../templates_c"; $this->_db=DB::connect("sqlite://localhost/samples.db"); } function disconnect(){ $this->_db->disconnect(); } /** * コイツの明示的に叩いて デストラクタ代わり * @param void * @return void */ function destructor(){ $this = null; } function getDb() {return $this->_db;} } //end of class PHP4の環境が手元にないので動かしてみてないので動かないかも? php4にはデストラクタがないので明示的に叩いてやる必要があります まぁ、PHP4だろうと5だろうと PHPってガベージコレクタの動きかかなり怪しいですけどね 新規システムであれば、わざわざPHP4を使うような時代でもないのでphp5にしてしまっては?

emikouji
質問者

お礼

inu2 さん,ありがとうございます。 早速やってみましたが, Fatal error: Cannot instantiate non-existent class: mysmarty in /・・・・/****.php on line 14 となり,これまでと同様のエラーが出ました。 おっしゃるとおり,PHP5にすればいいのですよね。やっぱり,レンタルサーバー別のところにしようかな・・・?

関連するQ&A