可以在php中实例化一个函数吗?

时间:2016-05-31 15:23:46

标签: php mysqli

我正在寻找一个包含mysqli扩展名的PHP脚本示例。有问题的代码如下:

$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");

我很困惑这是一个函数或类实例。如果它是一个函数,是否可以实例化一个函数?

3 个答案:

答案 0 :(得分:4)

让您困惑的是构造函数。

这是一个类中的特殊公共函数,在创建实例后直接调用它。

在你的情况下,

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

答案 1 :(得分:0)

您声明函数使用它,您声明对象(在这种情况下为mysqli对象)并且您实例化它

您可以阅读本手册。 http://www.php.net/manual/en/language.oop5.basic.php

答案 2 :(得分:-2)

如果你想在一个地方包含实例化逻辑,你可以将当前代码包装在一个函数中并返回准备使用的mysqli类吗?

示例:

<?php

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

$conn = getMysqliConnection();