我正在尋找一個包含mysqli擴展的PHP腳本示例。代碼有問題如下:是否有可能在php中實例化一個函數?
$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");
我很困惑,因爲這是一個函數或類實例。如果它是一個函數,是否有可能實例化一個函數?
我正在尋找一個包含mysqli擴展的PHP腳本示例。代碼有問題如下:是否有可能在php中實例化一個函數?
$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");
我很困惑,因爲這是一個函數或類實例。如果它是一個函數,是否有可能實例化一個函數?
讓你困惑的是構造函數。
這是一個特殊的公共函數,它在一個實例被創建後被直接調用。
mysqli
你的情況是一類,它有這樣的構造:
public function __construct($server, $user, $password, $dbname) {
// do something
}
參見:
http://php.net/manual/en/mysqli.construct.php
http://php.net/manual/en/language.oop5.decon.php
Geekfact:
您可以通過使用閉包獲取某個函數的「實例」。這些都不是真實的情況,只是callables
。
function createInstance() {
return function($a, $b) {
return $a + $b;
};
}
$myIndependendFunction = createInstance();
echo $myIndependendFunction(3, 2); // prints 5
一個實例就是當你使用「new」這個詞的時候得到的。就在那一刻,類的函數'__construct()'被調用(使用'new MyClass($ parameter)''中使用的參數)。不要擔心mysqli的功能形式。這只是出於遺留原因,爲了讓人們更容易從'mysql_ *'遷移到'mysqli_ *'。堅持與mysqli中的對象。 – DanFromGermany
混淆清除與您添加的兩個鏈接,您釘牢它。我現在看到如何將參數傳遞給類實例。這讓我很困惑。 –
拋棄我的是實例有參數的事實。我還讀到mysqli擴展是一個函數。所以它現在更有意義了。所以一個實例可以帶參數? –
如果你想在一個地方包含你的實例化邏輯,你可以將你當前的代碼包裝在一個函數中,並返回準備使用mysqli類?
例子:
<?php
function getMysqliConnection(){
return new mysqli("myServer", "myUser", "myPassword", "Northwind");
}
$conn = getMysqliConnection();
*你,你=你是。 '如果你想包含你是實例化邏輯'沒有任何意義。 – Styphon
感謝styphon .. – JParkinson1991
您聲明功能和使用它,聲明對象(在這種情況下的mysqli對象),你實例化它。
您可以閱讀手冊。 http://www.php.net/manual/en/language.oop5.basic.php
它是一個類的實例 –
[這裏的](http://php.net/manual/en/mysqli.construct.php)構建呼叫,這些參數被傳遞到。 「返回一個表示與MySQL服務器連接的對象。」 – sjagr
如果你能「實例化」一個函數,這對你意味着什麼?結果會是什麼,你期望能夠用這個實例化做什麼? – CodeCaster