未捕獲的錯誤:當不在對像上下文中時使用 $this ......請幫助

基礎藍

我已經閱讀了其他帖子並探索了 $this-> & self:: 的使用,但都不適用於我的班級。我檢查了推薦的帖子,但它們沒有解決我面臨的確切問題,所以我之前的問題被關閉了.....是因為我在同一個查詢中混合了靜態變量而不是靜態變量嗎?

我不是偷懶,我只是真的不明白問題是什麼,以便進一步研究。是可變範圍問題還是私有與公共問題。我還沒有看到這個問題的解決方案。

這是我的課:

<?php 

class DBConnection {
    private $dbHost = DB_HOST;
    private $dbUser = DB_USER;
    private $dbPass = DB_PASS;
    private $dbName = DB_NAME;

    public static function make() {
        $dsn = 'mysql:host=' . $this->dbHost . ';dbname=' . $this->dbName;
        $options = array(
            PDO::ATTR_PERSISTENT => true,
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
        );
        try {
            return new PDO($dsn, $this->dbUser, $this->dbPass, $options);
        }   catch(PDOException $e) {
                die($e->getMessage());
            }
    }
}

?>
老闆

您可能會像這樣調用它DBConnection::make()它是一個靜態函數,因此您需要創建靜態變量來訪問它們,如下所示:

class DBConnection {
    private static $dbHost = DB_HOST;
    private static $dbUser = DB_USER;
    private static $dbPass = DB_PASS;
    private static $dbName = DB_NAME;

    public static function make() {
        $dsn = 'mysql:host=' . self::$dbHost . ';dbname=' . self::$dbName;
        $options = array(
            PDO::ATTR_PERSISTENT => true,
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
        );
        try {
            return new PDO($dsn, self::$dbUser, self::$dbPass, $options);
        }   catch(PDOException $e) {
                die($e->getMessage());
            }
    }
}

或者像這樣調用它,以便創建一個類實例:

$db = new DBConnection();
$make = $db->make();

//Remove the static and now you can use "$this->dbHost" etc..
public function make() {...}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

MS-Access 時間表跟踪幫助請

請求幫助對 HTML 表單/卡片進行故障排除

請幫助使用 Muenchian 分組 XSLT 1.0 為每個目錄按標題分組

我正在嘗試製作一個 flexbox,但我在控制特定元素時遇到了問題。請幫助(TailwindCSS CDN)

使用 Anylogic 導出到 Excel 的幫助

遍歷列表循環錯誤幫助 - Yfinance

請幫助 PHP Firebase 檢索數據

Numpy:獲取有關添加功能的幫助

需要按鈕 Flex 對齊幫助

KQL 幫助:需要修剪日期時間值

需要幫助使用 python 創建聖誕樹

我嘗試製作一個 Tablayout 但它有一個錯誤請幫幫我

Python初學者幫助輸入錯誤處理

“輸入‘strategy.long’的語法錯誤。” 請幫忙。謝謝

需要幫助使用 EF 從多個表中獲取數據

需要幫助使用 axios 從 API 獲取數據

請幫助解決 Oracle 中的“BULK COLLECT”,它會陷入無限循環

有人可以幫助獲得與給定示例相同的放大效果嗎?

請幫助我解決此錯誤,Windows 上的 npm run build / deploy 錯誤

需要幫助將自定義時間段分配給日期時間數據

在 R 控制台中運行幫助時不要打開彈出菜單

arduino 開/關非瞬時開關實施幫助

在嘗試為交易視圖中的簡單燭台著色時需要幫助

需要幫助使用變量為 Get-ADUser 定義 -Properties

在 javaScript 中使用查找數組幫助器顯示未定義的輸出

需要幫助使用正則表達式函數/修剪我的字符串

使用 ADF 從文本文件中刪除列所需的幫助

幫助使用 Excel VBA 從在線 Web 服務解析 XML

需要幫助在 android studio 上使用電池管理器