我正在阅读一些看起来像这样的代码:
Class_Menu.php:
<?php
class Menu {
private $label;
private $link;
private $args;
function __construct($label, $link, $args=array()) {
$this->label=$label;
$this->link=$link;
$this->args=$args;
}
...
Run Code Online (Sandbox Code Playgroud)
注意如何$args定义为中的数组__construct.为什么选择这种方法而不是$args在var列表中定义:
<?php
class Menu {
private $label;
private $link;
private $args=array();
function __construct($label, $link, $args) {
$this->label=$label;
$this->link=$link;
$this->args=$args;
}
...
Run Code Online (Sandbox Code Playgroud)
在第一个示例中,$args是可选的.的构造可以与仅2个参数为被调用$label和$link,以及$args将其定义为一个空数组.
在第二个示例中,该$args参数是必需的.
(意见):$args = array()在声明属性时我会留在构造函数中,因此很容易一目了然地告诉var $ args是什么类型的.
<?php
class Menu {
private $label;
private $link;
private $args = array();
function __construct($label, $link, $args=array()) {
$this->label=$label;
$this->link=$link;
$this->args=$args;
}
Run Code Online (Sandbox Code Playgroud)