[英]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");
mysqli
, mysqli
是一個由PHP提供的為您准備的類,請考慮如下:
class mysqli{
}
$res
是$mysqli->query($query);
副本$mysqli->query($query);
這是:
這里的query
是mysqli
類的一個屬性(一個函數),我們這樣做是為了復制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.