Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 调用不带参数的ParametereSD构造函数将引发错误?_Php_Oop - Fatal编程技术网

Php 调用不带参数的ParametereSD构造函数将引发错误?

Php 调用不带参数的ParametereSD构造函数将引发错误?,php,oop,Php,Oop,我在php中有这样的类 class database var $db; { function ___constructor($db) { $this->db= $db; } } 现在我这样称呼它 $obj = new database(); 它的抛出错误我如何修复它 是否自动调用默认构造函数。当我没有传递任何值时 之所以会发生这种情况,是因为在使用{打开类之前添加了$db

我在php中有这样的类

class database 

 var $db;
{

       function ___constructor($db)
            {
                $this->db= $db;

               }



}
现在我这样称呼它

$obj = new database();
它的抛出错误我如何修复它


是否自动调用默认构造函数。当我没有传递任何值时

之所以会发生这种情况,是因为在使用
{
打开类之前添加了
$db

这样使用:

class database {
    var $db; //Comes here
    function __construct($db) {
        $this->db = $db;
    }
}
更新


请看这个答案下面的注释。

这是因为在用
{
打开类之前添加了
$db

这样使用:

class database {
    var $db; //Comes here
    function __construct($db) {
        $this->db = $db;
    }
}
更新


请参阅此答案下方的注释。

当前构造函数需要传递参数。您需要在方法定义中为参数提供默认值

   function __construct($db='default') {
        $this->db = $db;
    }
另外,您的方括号是错误的。
var$db
不在类定义中。我很确定这不会正确解析。请将开始方括号移到类名后面

class database{
...
}

构造函数名称中的下划线似乎太多,它应该有2个
\u构造函数

您当前的构造函数需要传递一个参数。您需要在方法定义中为参数提供默认值

   function __construct($db='default') {
        $this->db = $db;
    }
另外,您的方括号是错误的。
var$db
不在类定义中。我很确定这不会正确解析。请将开始方括号移到类名后面

class database{
...
}

看起来构造函数名称中的下划线太多了,它应该有2个
\uuuu构造函数
\uuuu构造函数
,它应该只包含两个下划线,实际上应该是
\uu构造函数
。没有“构造函数”在OOP中,
\uuuuuu构造函数
应该只包含两个下划线,而且它实际上应该是
\uu构造函数
。OOP中没有“构造函数”。
\uuuuu构造函数
仍然包含太多下划线,而且OOP中没有“构造函数”,它是“构造函数”)
\uu-construct
=>@lolka\u-bolka抱歉语法错误。我在文件中检查了我编写的类是否正确,该方法称为u-construct($db)我认为这里的错误是我需要为构造函数提供默认值。正如DAN所提到的。
\uuuuu构造函数
仍然包含太多下划线,而且OOP中没有“构造函数”,它是“构造函数”)
\uu-construct
=>@lolka\u-bolka抱歉语法错误。我在文件中检查我编写的类是正确的,该方法称为u-construct($db)。我认为这里的错误是我需要为构造函数提供默认值。正如DAN所提到的。