类数组中的PHP变量
我试图调用一个变量来添加到类中的数组中,但在尝试时,我始终遇到意外的T_变量错误类数组中的PHP变量,php,arrays,class,oop,variables,Php,Arrays,Class,Oop,Variables,我试图调用一个变量来添加到类中的数组中,但在尝试时,我始终遇到意外的T_变量错误 class MB_API { $SName = 'Test'; $PWD = 'test'; $SiteID = '10'; protected $client; protected $sourceCredentials = array( "SourceName"=>$SName, "Password"=>$PWD,
class MB_API {
$SName = 'Test';
$PWD = 'test';
$SiteID = '10';
protected $client;
protected $sourceCredentials = array(
"SourceName"=>$SName,
"Password"=>$PWD,
"SiteIDs"=>array($SiteID)
);
};
变量可以在类内部或外部设置,这并不重要。它们将通过从数据库中拉取来设置。默认变量值需要是编译时文本(在脚本运行之前,它们需要是常量,基本上是
“文本字符串”
、数字42
或常量值数组数组(1,2,3)
),这意味着它们不能有动态值(例如另一个变量)
更好的方法是使用构造函数:
protected $sourceCredentials = []; //PHP5.4 and above syntax, synonymous to array()
public function __construct(array $sourceCredentials) {
$this->sourceCredentials = $sourceCredentials;
}
注意,通过这种方式,调用方(实例化对象的代码)可以从外部传入凭据数组。有不同的方法,但这被认为是最佳实践。默认变量值需要是编译时文本。(在脚本运行之前,它们需要是常量,基本上是一个
“文字字符串”
、一个数字42
或一个常量值数组数组(1、2、3)
),这意味着它们不能有动态值(例如另一个变量)
更好的方法是使用构造函数:
protected $sourceCredentials = []; //PHP5.4 and above syntax, synonymous to array()
public function __construct(array $sourceCredentials) {
$this->sourceCredentials = $sourceCredentials;
}
请注意,通过这种方式,由调用方(实例化对象的代码)从外部传入凭据数组。有不同的方法,但这被认为是最佳做法。您可以在构造函数中分配变量值 对于您使用的最佳实践,如下所示:
class MB_API {
private $Sname;
private $PWD;
private $SiteID;
protected $client;
protected $sourceCredentials;
public function __construct() {
// Set your default Values here
$this->Sname = "Test";
$this->PWD = 'test';
$this->SiteID - '10';
$this->sourceCredentials = array(
"SourceName" => $this->SName,
"Password" => $this->PWD,
"SiteIDs" => array($this->SiteID)
);
}
}
您可以在构造函数中指定变量值 对于您使用的最佳实践,如下所示:
class MB_API {
private $Sname;
private $PWD;
private $SiteID;
protected $client;
protected $sourceCredentials;
public function __construct() {
// Set your default Values here
$this->Sname = "Test";
$this->PWD = 'test';
$this->SiteID - '10';
$this->sourceCredentials = array(
"SourceName" => $this->SName,
"Password" => $this->PWD,
"SiteIDs" => array($this->SiteID)
);
}
}
您有两个不同的“$sname”-一个是
$sname
,另一个是$sname
您有两个不同的“$sname”-一个是$SName
,另一个是$SName
要以非技术性的方式展开,这意味着$sourceCredentials
只能设置为空数组。您必须从MB_API
@CarlMarkham:展开并添加了一个示例:)要以非技术性的方式扩展,这意味着$sourceCredentials
只能设置为空数组。您必须从MB_API
@CarlMarkham:extended的方法中填充它,并添加了一个示例:)PHP不区分大小写,这不是问题。啊,确实如此。把我的语言弄糊涂了!PHP不区分大小写,这不是问题所在。啊,的确如此。把我的语言弄糊涂了!请编辑您的问题以包含整个错误消息好吗?请编辑您的问题以包含整个错误消息好吗?谢谢这给了我我想要的。谢谢这给了我我想要的。