PHPのオブジェクト指向について
ゲスト
ゲスト (ゆ)
ATOMRSS
  • コード求むID: 332
  • 登録日時:  2008/10/05 11:01
  • 最終更新日時: 2008/10/05 19:09
  • アクセス数: 442
  • タグ:  php
  • codeなにがしブックマークに追加する 0 users
  • このページを del.icio.us に追加
  • このページをはてなブックマークに追加

PHPのエラーについて。

自前でバリデータクラスを組んだのですが、以下のようなエラーで悩まされています。

Fatal error: Using $this when not in object context in /path/validator.php

<?php
class validator
{

private $err_str array();

/* 中略 */

//エラーがあれば$err_str(配列)にエラー内容が蓄積され、この関数でHTMLでリスト化する。
public function validateResult()
{
if(count($this->err_str) 0) //止まるところ
{
$str '<ul>/n';
foreach($this->err_str as $k => $v) $str .= '<li>'.$v.'</li>/n';
$str .= '</ul>';
}else{
$str NULL;
}
return $str;
}
}

?>

同じクラス内の変数にアクセスしてるのに、何故「Using $this when not in object context」のようなエラーが出るのか分かりません(オブジェクト指向の根本的な物を誤解してるかもしれないのですが…)
詳しい方知恵をお貸し下さい。


コメント

  • ゲスト
  • 1:ゲスト
  • 2008/10/05 14:09

validator::validateResult(); みたいな呼び方してませんか?

上記のようなコードで err_str にアクセスするなら、

$foo = new validator;
$foo->validatorResult();
のように、インスタンスを作らないと駄目です。


GJ

  • ゲスト
  • 2:ゲスト
  • 2008/10/05 17:33

検証できるだけのソースリストを提示されたい

GJ

  • ゲスト
  • 3:ゲスト
  • 2008/10/05 19:09

コメント1のような原因で、クラスメソッドとして呼び出したいと考えているなら、
static メンバとしてメンバを定義し、static メソッドとしてメソッドを定義する。

http://www.php.net/manual/ja/language.oop5.static.php

  • GoodJob
  • 0

前へ 1 次へ

コメントする

[block]から[/block]までの範囲はブロック表示されます。
部分的に目立たせたい時や、引用などにお使いください。

[code]から[/code]までの範囲は等幅表示されます。
ソースコードや設定ファイルの記述などにお使いください。

ゲスト投稿者:ゲスト:

関連ソースコード・ノウハウを登録

PDFLib | A library for processing PDF on the fly プレゼン公開・共有サイト handsOut.jp オープンタイプ株式会社 チーム・マイナス6% - みんなで止めよう温暖化

ブックマークコメント