numDisplay
いくつかのメソッドを含むクラスがあります。これらのメソッドのほとんどはprefs
、職務の過程で別のファイルに含まれている、呼び出された別のクラスのメソッドを使用する必要があります。
ファイルを含めてクラスをインスタンス化し、必要な各メソッド内からメソッドに個別にアクセスできると思いますprefs
が、もっと良い方法があると思いますか?
のファイルを実行し、そこでクラスをインスタンス化することも考えましrequire_once
た。その後、のメソッドから呼び出すことができます。__constructor
numDisplay
numDisplay
以下のコードとさまざまな構文のバリエーションを試しましたが、動作しません。どうすればいいですか?
class numDisplay {
private $P;
function __construct($P) {
require_once($_SERVER['DOCUMENT_ROOT'].'/includes/classes/preferences.php');
$P = new Preferences();
}
public function displayBSNo($num, $invType) {
$auto_bs_no = $this->$P->getPreference('auto_bs_no');
$length_bs_no = $this->$P->getPreference('length_bs_no');
$length_alt_bs_no = $this->$P->getPreference('length_alt_bs_no');
if ($invType == 1) { // It's a standard BS
if ($auto_bs_no == '1') {
return "BS-" . $this->pad($num, $length_bs_no);
} else {
if ($num == '') {
return '<i>none</i>';
} else {
return $num;
}
}
}
elseif ($invType == 2) {
return "PI-" . $this->pad($num, $length_alt_bs_no);
}
}
}
displayBSNo() を使用しようとすると、次のエラーが発生します。
Fatal error: Call to a member function getPreference() on a non-object in /home/peter/Documents/websites/Our_websites/bookkeeper.ph/books.bookkeeper.ph/public/includes/classes/common.classes.php on line 347