こんにちはよろしくお願いします。
PHP4でSmarty派生クラスを定義する方法を教えてください。
PHP5のサンプルコードで次のようなものがありました。
PHP4では,「private」が使えないらしいとか,「__construct」ではなくてクラス名がコンストラクタ名になるとかでうまくいかないようです。どのように修正すればよいのでしょうか?
また,「__destruct」はどのようにすれば良いのでしょうか?コンストラクタ名とデストラクタ名が同じでよいのでしょうか?
よろしくお願いします。
<?php
require_once("DB.php");
require_once("Smarty/libs/Smarty.class.php");
class MySmarty extends Smarty {
private $_db;
public function __construct() {
$this->Smarty();
$this->template_dir="../templates";
$this->compile_dir="../templates_c";
$this->_db=DB::connect("sqlite://localhost/samples.db");
}
public function __destruct() {
$this->_db->disconnect();
}
public function getDb() {return $this->_db;}
}
?>
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にしてしまっては?
inu2 さん,ありがとうございます。
早速やってみましたが,
Fatal error: Cannot instantiate non-existent class: mysmarty in /・・・・/****.php on line 14
となり,これまでと同様のエラーが出ました。
おっしゃるとおり,PHP5にすればいいのですよね。やっぱり,レンタルサーバー別のところにしようかな・・・?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- PHP PHP ページング データベース 1 2022/06/16 10:30
- 英語 「this is the/my first time~」の文法上の制約について 1 2023/04/06 09:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
例外処理
-
Function内でのMySQLデータベー...
-
VBAをつかってクエリの情報を抽...
-
Microsoft Access DBへの接続
-
Ruby構文で三つのテーブルを作...
-
PHPの記述で値が取れません。
-
DBから抜き出した値を表示する方法
-
SQL Serverからのvarchar型のデ...
-
php テーブルを作れない
-
phpのエラーについてです
-
Resource id #3 をフィールドの...
-
連想二次元配列のUNIXTIMEでの...
-
DBに入力されている値のセレ...
-
PHP 勤務時間の合計を出したい
-
sprintf関数での%Sが分かりませ...
-
XAMMPが起動しません。
-
PHP+MySQLで、日時を比較して抽...
-
出勤表の作り方
-
mysql_fetch_objectのエラー
-
excelvbaのリセットの仕方。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー3131 FROM 句の構...
-
VBAをつかってクエリの情報を抽...
-
テキストボックスに入れた内容...
-
エラー3011
-
SQL文が実行できません
-
SELECT文を発行して、ACCESSよ...
-
in 'where clause'のエラーの理由
-
phpのPEARのMDB2を使って出たエ...
-
Call to undefined method MDB2...
-
LocalのNotesメールDBをVBAで参...
-
PHP内でUPDATE構文を使用してい...
-
単純ですが、意外と穴?なデー...
-
DAOでデータベースを二つ開くに...
-
pearがエラーになる
-
見られたくないファイル
-
PEAR でprepareメソッドがエラーに
-
SQL文の実行に失敗しました???
-
年月の情報だけを基に階層構造...
-
例外処理
-
データ入力条件
おすすめ情報