Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.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 指定该参数是构造函数中的数据库_Php - Fatal编程技术网

Php 指定该参数是构造函数中的数据库

Php 指定该参数是构造函数中的数据库,php,Php,在以下代码中: protected $db; public function __construct(Database $db) { $this->db = $db; } 如果您可以随意命名参数$db,并且它仍然可以工作,那么指定参数$db为数据库有什么意义 这是一个类型声明。从: 类型声明允许函数要求参数为 在通话时使用特定类型。如果给定值不正确 类型,然后生成一个错误:在PHP5中,这将是一个可恢复的 致命错误,而PHP7将抛出 例外 要指

在以下代码中:

protected $db;

    public function __construct(Database $db) 
    {
        $this->db = $db;
    }

如果您可以随意命名参数$db,并且它仍然可以工作,那么指定参数$db为数据库有什么意义

这是一个类型声明。从:

类型声明允许函数要求参数为 在通话时使用特定类型。如果给定值不正确 类型,然后生成一个错误:在PHP5中,这将是一个可恢复的 致命错误,而PHP7将抛出 例外

要指定类型声明,应在声明之前添加类型名称 参数名。声明可以接受
NULL
如果参数的默认值设置为
NULL
,则为

因此,如果我们没有在代码中指定
$db
的类型声明,我们可以使用
null
参数实例化该类,这将导致对象的
$db
参数设置为
null

$object = new ClassName( null );
通过指定构造函数的单个参数必须是
数据库
类型,如果我们传递的不是
数据库
对象,PHP将抛出错误(或PHP7中的异常)。例如:

$object = new ClassName( null ); // Throws an error / exception

$db     = new Database();
$object = new ClassName( $db ); // Performs as expected.

在这种特殊情况下,
数据库
是由您正在使用的框架/库定义的对象类型(即
类数据库{…}
)。

这是一种类型声明。从:

类型声明允许函数要求参数为 在通话时使用特定类型。如果给定值不正确 类型,然后生成一个错误:在PHP5中,这将是一个可恢复的 致命错误,而PHP7将抛出 例外

要指定类型声明,应在声明之前添加类型名称 参数名。声明可以接受
NULL
如果参数的默认值设置为
NULL
,则为

因此,如果我们没有在代码中指定
$db
的类型声明,我们可以使用
null
参数实例化该类,这将导致对象的
$db
参数设置为
null

$object = new ClassName( null );
通过指定构造函数的单个参数必须是
数据库
类型,如果我们传递的不是
数据库
对象,PHP将抛出错误(或PHP7中的异常)。例如:

$object = new ClassName( null ); // Throws an error / exception

$db     = new Database();
$object = new ClassName( $db ); // Performs as expected.

在这种特殊情况下,
数据库
是由您正在使用的框架/库定义的对象类型(即
类数据库{…}
)。

变量/属性的命名与其类型无关。例如,如果传入类型为
Date
的对象,会发生什么情况?如果方法/属性不存在,则会抛出错误。不,我指的是变量名称前的
数据库
关键字。我如何搜索这个公约,以便了解更多有关它的信息?是的,我知道你的意思。它指定变量
$db
应该是什么类型。您知道PHP中的变量可以有不同的类型,对吗?是的,int,bool,等等。。但是数据库呢?我已经看到它的名字是db,它仍然有效。请看我的答案,它应该提供你所需要的一切来理解这里发生了什么。变量/属性的命名与它的类型无关。例如,如果传入类型为
Date
的对象,会发生什么情况?如果方法/属性不存在,则会抛出错误。不,我指的是变量名称前的
数据库
关键字。我如何搜索这个公约,以便了解更多有关它的信息?是的,我知道你的意思。它指定变量
$db
应该是什么类型。您知道PHP中的变量可以有不同的类型,对吗?是的,int,bool,等等。。但是数据库呢?我已经看到它名为just
db
,它仍然有效。请看我的答案,它应该提供所有你需要了解这里发生了什么。我现在明白了。谢谢你的例子,他们真的帮助了我!我现在明白了。谢谢你的例子,他们真的帮助了我!