簡體   English   中英

可以在php中實例化一個函數嗎?

[英]Is it possible to instantiate a function in php?

我正在尋找一個包含mysqli擴展的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

你聲明函數使用它 ,你聲明對象 (在這種情況下是mysqli對象)並實例化它

你可以閱讀手冊。 http://www.php.net/manual/en/language.oop5.basic.php

如果要在一個地方包含實例化邏輯,可以將當前代碼包裝在一個函數中並返回准備使用的mysqli類?

例:

<?php

function getMysqliConnection(){
    return new mysqli("myServer", "myUser", "myPassword", "Northwind");    
}

$conn = getMysqliConnection();

暫無
暫無

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

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