[PHP-users 6350] Re: クラス内で定義した変数がUndefined property となる。

古川敦史 php-users@php.gr.jp
Wed, 20 Mar 2002 15:49:10 +0900


古川敦史 です。
長くなるのが判っているんだから、行番号をつけておくべきでしたね。
以後、気をつけます。


> --- Cyoki Cyoki --- Cyoki Cyoki ---
> >httpd/html/furukawa/mcCompany.inc on line 62
> >[20-Mar-2002 10:54:22] PHP Warning:  Undefined property:  brand in /home/
> >httpd/html/furukawa/mcCompany.inc on line 62
> --- Cyoki Cyoki --- Cyoki Cyoki ---
> このエラーが発生している
> /home/httpd/html/furukawa/dcompanyTester.php
> の166行、

|  158:        $this->kaisya2->sk_address4 = NULL;
|  159:        $this->kaisya2->sk_tel = NULL;
|  160:        $this->kaisya2->datestart = "2002/03/10";
|  161:        $this->kaisya2->dateupdate = NULL;
|  162:        $this->kaisya2->status = MC_ST_PLANCHG;
|  163:        $this->kaisya2->isDel = FALSE;
|  164:        $this->kaisya2->annnai = "会社案内";
|  165:
-->166:        $this->assert($this->kaisya1->brand=='アーバンネッ\ト', "dc: check equal: brand=[".
|  167:        $this->assert($this->kaisya1==$this->kaisya2, "dc: check equal");
|  168:
|  169:
|  170:    }
これは、4番目につけたソースの中にあります。
関数 dcTestEqualの最後の部分で、直接brandを参照しているところ。


> /home/httpd/html/furukawa/mcCompany.inc
> の62行は
|   55:    //  会員情報登録
|   56:    function insert($db, $table = "tmp_company")
|   57:    {
|   58:        $items = "id, name, namekana, password, reminder, rem_answer";
|   59:        $values = "'".$this->id."', '".$this->name."', '".$this->namekana."', '".$this->pa
|   60:
|   61:        if ($this->eigyou != ""){ $items .= ", eigyou";     $values .= ", '".$this->eigyou
--> 62:        if ($this->brand != ""){ $items .= ", brand";       $values .= ", '".$this->brand.
|   63:        $items .= ", tanto, tantokana";
最初のソースのinsert関数のところです。

両方とも、brandというプロパティがないと言われているのですが、

class mcCompany.inc(最初につけたソース)では、
|  23:class mcCompany {
|  24:    var $id;            /* ID */
|  25:    var $name;          /* 会社名 */
|  26:    var $namekana;      /* 会社名(かな) */
|  27:    var $password;      /* パスワード */
|  28:    var $reminder;      /* パスワード・リマインダ */
|  29:    var $rem_answer;    /* リマインダ・アンサー */
|  30:    var $eigyou;        /* 営業時間 */
|  31:    var $brand;         /* 掲載社名 */
|  32:    var $tanto;         /* 担当者 */
と定義はしているはずなんですね。

それでどうなってるのかわからなくて、悩んでいます。


-- /SHNet
Furukawa Atsushi / 古川 敦史
E-Mail: furukawa@shnet.co.jp
PHS: 070-5551-7606
HomePage: http://www.shnet.co.jp/