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