Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.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_Arrays_Class_Oop_Variables - Fatal编程技术网

类数组中的PHP变量

类数组中的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,

我试图调用一个变量来添加到类中的数组中,但在尝试时,我始终遇到意外的T_变量错误

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不区分大小写,这不是问题所在。啊,的确如此。把我的语言弄糊涂了!请编辑您的问题以包含整个错误消息好吗?请编辑您的问题以包含整个错误消息好吗?谢谢这给了我我想要的。谢谢这给了我我想要的。