スレッド表示 | フラット表示〕 全トピック 920 件中 832 番目 次≫ ≪前

クラス継承を別ファイルにて

created: 2003-08-05 13:39 | modified: 2003-08-05 20:53 | reply: 3

[486] クラス継承を別ファイルにて

user: おさむ | created: 2003-08-05 13:39
はじめまして。質問させて下さい。
下記のような2つのファイルを作って、
classB.php で classA を継承させたいんですが、

Fatal error: Cannot instantiate non-existent class: classb in ファイルパス\classB.php on line 4

というエラーが出てしまいました。
classA.inc と classB.php を1つのファイルにまとめると、正常に




と表示されます。
これは一体なぜなんでしょうか?

--------- classA.inc ---------
<?php
class classA {
var $hoge = "あ\n";

function disp_value(){
print $this->hoge;
}
}
?>

--------- classB.php ---------
<?php
include("./classA.inc");

$aaa = new classB();
$aaa->disp_value();
$aaa->change_value();
$aaa->disp_value();

class classB extends classA {
function change_value(){
$this->hoge = "い\n";
}
}
?>
reply: 487 492 返信 編集 削除

[487] Re.クラス継承を別ファイルにて

user: ゆうじ | created: 2003-08-05 15:01
ソースを見る限りでは Fatal error の原因はわかりませんね。

classA.inc が読み込まれていないように思うのですが、
試しに、include("./classA.inc"); を
require("./classA.inc"); に置き換えるとどうでしょう。

エラーメッセージが、classB.php on line 2 のように
classA.inc の読み込みに関するものに変わるようであれば、
include_path が原因と思われます。
Parent: 486  reply: 488 返信 編集 削除

[488] Re.Re.クラス継承を別ファイルにて

user: おさむ | created: 2003-08-05 16:36
> ゆうじさん
お早い返信どうもありがとうございます。
さっそく include → require に変更してみましたが、
結果は同じでした。

試しに、クラス本体を記述した classA.inc は変更せずに、
classB.php を以下のようにしました。
この場合では include でも require でも動作しましたので、
読み込みの方はできているようです。

どうぞよろしくお願いいたします。

--------- classB.php ---------
<?php
include("classA.inc");

$aaa = new classA();
$aaa->disp_value();
?>

申し訳ありません。環境を書き忘れていました。
Windows 2000
Apache 2.0.44
PHP 4.3.0
で動作しています。
Parent: 487  返信 編集 削除

[492] Re.クラス継承を別ファイルにて

user: おさむ | created: 2003-08-05 20:53
こんばんは。

あれからいろいろ調べて回ったんですが、
classB.php を以下のように書き直すことで解決しました。

--------- classB.php ---------
<?php
include("./classA.inc");

class classB extends classA {
function change_value(){
$this->hoge = "い\n";
}
}

$aaa = new classB();
$aaa->disp_value();
$aaa->change_value();
$aaa->disp_value();
?>

言われてみれば何てことない、当たり前のことでした。
もっとずっと高度なところでのミスかと思いこんでいました。
大変お騒がせいたしました。
ご協力どうもありがとうございました。
Parent: 486  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 832 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑