簡體   English   中英

PHP OOP編程

[英]PHP OOP Programming

那是我很好奇的事情。 在php mysqli中,我可以對未知的類名稱執行操作功能,例如:

$res = $mysqli->query($query);
$res->fetch_array();

那是已知的fetch_array的名稱,但是res變量。 我想知道它是如何實現的。 對不起,馬虎的谷歌翻譯。

如果我正確理解了您的問題,那么答案就是該方法mysqli :: query返回的對象是mysqli_result類的實例 此類具有方法fetch_array()

另外,您可能對函數get_class感興趣。

在此行之前:

$res = $mysqli->query($query);

肯定有mysqli連接:

$mysqli = new mysqli("localhost", "user", "password", "database");

mysqlimysqli是一個由PHP提供的為您准備的類,請考慮如下:

class mysqli{

}

$res$mysqli->query($query);副本$mysqli->query($query); 這是:

這里的querymysqli類的一個屬性(一個函數),我們這樣做是為了復制mysqli查詢的結果,該結果對於(成功)是資源,對於失敗,則為false。

您還可以像這樣組合:

$row = $mysqli->query($query)->fetch_array();
print_r($row);

我的猜測是

class MySQLi{
/* other code */
public function query($query){
// some code
return new MySQLiResult(); // Don't know if that's the real class name
}
}

結果應該像這樣

class MySQLiResult{
public function fetch_array(){
return array();
}
}

注意,我只寫了虛構的代碼。 我真的不知道,類名是什么。 這只是對其外觀的粗略估計。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM