如何在PHP中一次分配多个变量?这基本上就是我想要实现的,但它会在private $from = private $to
syntax error, unexpected 'private'
上抛出解析错误:
<?php
namespace Library;
class Localize
{
// Default data for both fields. Localization must be specified.
private $from = private $to = array(
'language' => 'en', // Language: English
'country' => 'usa', // Country: USA
'currency' => 'dollar', // Currency: dollar $
'units' => 'is', // Units: International System[meter, kelvin, etc]
'timezone' => '-5' // Timezone: UTC -5 hours [America/New_York]
);
// ...
}
我已经尝试private $from = private $to
和private $from = $to
,但两者都会抛出错误。 在PHP类中一次分配多个属性的正确语法是什么?
注意:我知道有很多方法可以像构造函数一样处理这个问题,但是我想知道我想要实现的目标是否可行。
答案 0 :(得分:2)
你为什么要那样做?将类视为实体的模式。该实体通常不定义任何数据。在创建类的具体对象时处理数据。您通常会在类的构造函数中为类成员分配值。所以我会在构造函数中进行初始化。
答案 1 :(得分:1)
Php语法不允许这样做,但您可以在构造函数中执行此操作:
public function __construct() {
$this->to = clone $this->from;
}
答案 2 :(得分:1)
更好的想法是使用单个数组来存储类的所有属性
private $_arLoc = array();
然后,在构造函数
中赋值$_arLoc[ 'from' ] = array(
'language' => 'en', // Language: English
'country' => 'usa', // Country: USA
'currency' => 'dollar', // Currency: dollar $
'units' => 'is', // Units: International System[meter, kelvin, etc]
'timezone' => '-5' // Timezone: UTC -5 hours [America/New_York]
);
$_arLoc[ 'to' ] = $_arLoc[ 'from' ];
答案 3 :(得分:0)
总之,不,你不能。您必须在实例化时定义它们。
答案 4 :(得分:0)
这有用吗?取决于您想要使用它的目的。
class Localize
{
// Default data for both fields. Localization must be specified.
private $to = array(
'language' => 'en', // Language: English
'country' => 'usa', // Country: USA
'currency' => 'dollar', // Currency: dollar $
'units' => 'is', // Units: International System[meter, kelvin, etc]
'timezone' => '-5' // Timezone: UTC -5 hours [America/New_York]
);
private $from ;
function __construct(){
$this->from = $this->to;
}
function __destruct(){
}
// ...
}
$var = new Localize();
var_dump($var);
答案 5 :(得分:-2)
我想你已经说过$ to array是私有的!
尝试: private $ from = $ to = array(