Calender
Sun Mon Tue Wed Thu Fri Sat
1234567
891011121314
15161718192021
22232425262728
2930     
<< September 2019 >>
広告
SEARCH

SELECTED ENTRIES
RECENT COMMENTS
RECENT TRACKBACK
CATEGORIES
ARCHIVES
LINKS
PROFILE
OTHERS
SKYPE
PC: skype.jojo.jp
chat
iPad: iphone.jojo.jp
chat call
THANKS



本日:
昨日:
多言語
広告
 ▼▲ 作業日報 ▼△
    What's under the hood?
<< PHPのSQLServer関数対策(windows) | main | ガソリン三重は安い >>
【PHP】staticプロパティを$thisで参照してました(汗
データベースの過去データを消去するための削除処理が動いていない、、

パッと見た目、ロジック的には問題なさそうな感じだったんだけど、追ってみると派生元クラスのstatic変数を矢印で参照しているところを発見!
$dtTable1Limit = strToTime("-$iTable1span day",$this->dt);
このdt変数は、staticな関数の追加で、途中でstatic に「変更〜」したものでした、、

そもそも「selfと$thisを明確に違うものとして理解していなかった」ので他の影響するところをみなかった、、すいませんです
Class CTest {
 static $hoge;
 public function __construct() {
  $this->hoge = '初期化したよ'; .........NG
  self::$hoge = '初期化したよ'; .........OK
 }
}

$c = new CTest();
echo $c->hoge; ...........NG
echo CTest::$hoge ........OK

ググッてみるとやはり同じようなことを経験していらっしゃる方がいた  (3年も前に)

以下本家マニュアルサイトより引用:
static キーワード
static メソッドは、オブジェクトのインスタンスを生成せずに コールすることができます。疑似変数 $this は、 static として宣言されたメソッドの内部から利用することはできません。

static プロパティは、矢印演算子 -> によりオブジェクトからアクセス することはできません!!
びっくりマークは引用者が追加

そろそろ、PHPも変数宣言を強要できるようにしてもらえないかな・・
| 開発関連 | 12:26 | comments(1) | trackbacks(0) |
管理者の承認待ちコメントです。
| - | 2008/07/07 5:18 PM |









http://blog.jojo.jp/trackback/951307