我搜索並閱讀了有關私人,公共&受保護的課程,我可能只是不知道如何說出我想要做的事情。使用php類中的變量
我無法獲得類函數來使用定義爲public的變量。
這裏是我的類:
class Store {
private $wpdb;
public $store;
public $payroll_total_dollars;
public $payroll_regular_dollars;
public $payroll_overtime_dollars;
public $payroll_vacation_dollars;
public $payroll_salary_dollars;
public $payroll_commission_dollars;
public $payroll_total_percent;
public $the_last_query;
public function __construct() {
global $wpdb;
$this->wpdb = &$wpdb;
$this->setup_payroll();
}
public function set_store($store) {
$this->store = $store;
}
function setup_payroll() {
if($this->store != 'all_stores') {
$this->payroll_regular_dollars = $this->wpdb->get_var($this->wpdb->prepare ("SELECT sum(regular_hourly) FROM adt_sales WHERE store= '%d'", $this->store));
$this->the_last_query = $this->wpdb->last_query;
}
}
}
$store01 = new Store;
$store01->set_store('1');
我想一些事情得到查詢在setup_payroll()
功能工作。
如果我這樣做:echo $store01->store
,它返回string(1) "1"
如果我這樣做:echo $store01->the_last_query
,它返回string(58) "SELECT sum(regular_hourly) FROM adt_sales WHERE store= '0'"
所以很明顯,因爲查詢被接收0
它實際上應該是1
,其結果是NULL
。
如果我硬編碼數1
到在setup_payroll()
功能查詢,它按預期工作,並返回我要找的$payroll_regular_dollars
變量中的值,所以我不知道在哪裏,我在去錯了試圖讓$this->store
進入該查詢!
請幫助保存我的理智!
查詢執行_before_你設置商店,這就是爲什麼。 – tkausl
就像@tkausl所說的,在設置商店之前,您的查詢會在構造函數中被預先調用。在實例化後設置商店不會更改查詢的結果,因爲它已經運行。 –