[PHP-users 415] Re: 同じファイルをinclude したとき

KOYAMA Tetsuji php-users@php.gr.jp
Fri, 29 Jun 2001 18:51:16 +0900


  小山です。

At Fri, 29 Jun 2001 10:47:27 +0900,
okazaki wrote:
> クラスの継承についてお伺いしたいのですが、
> hoge.phpとhuga.phpは共に、foo.incと言うファイルを
> includeします。
> 
> foo.incには、
> class baz {
>    var num_of_colmun="";   ←カラム数を指定しています。
> 
> と言う記述があり、hoge.php , huga.php でそれぞれ
> 
> --hoge.php--
> class mybaz extends baz {
>     var $num_of_column=5;
> 
> --huga.php--
> class mybaz extends baz {
>     var $num_of_column=10;
> 
> と言う形で継承しています。

  どうもクラスというものを良く分かっておられないように感じますが。
同名の mybaz というクラスを複数作って、しかもそれぞれに別の定義を与え
ることにどのような意味があるのでしょうか?

  例えば、foobaz と barbaz という2つのクラスをつくって

class foobaz extends baz {
  function foobaz() {
    $this->num_of_column = 5;
  }
}

class barbaz extends baz {
  function barbaz() {
    $this->num_of_column = 10;
  }
}

とかではダメなのでしょうか?

  また上記とはまったく関係ないですが、

> つまり、ブラウザをいったん閉じるまでは、先に継承した方の
> カラム数が、hoge.php , huga.php 共に継承されているようなのですが、
> これは、仕方のないことなのでしょうか?
> それとも私の環境のせいなのでしょうか?

これは、ブラウザがキャッシュしているか、session が自動で on になってい
るかぐらいしか考えられません。通常はこういうことは起こりません。

  どうしても原因が特定できなければ、現象が発生する短いスクリプトを書い
て、それをここに投げていただければ、みんなで検証できるのではないかと。
(笑)

-- 
	小山 哲志@ビート・クラフト
	koyama@beatcraft.com
	koyama@hoge.org