php公共属性默认值分配为变量
问题描述:
由于我正在学习PHP OOP,而且我看到了很多令人困惑的部分。在这里我有一个名为的变量public $ file_link,我试图将默认值指定为超全局变量。但我不能这样做,它给出了一个解析错误。我一遍又一遍地检查整个文件,找出问题所在,我发现我无法将默认值作为公共属性中的变量分配。所以我需要一个公共变量的setter方法。 (请参阅我的代码评论以获得更好的理解)。我真的需要一种方法来设定公共财产的价值吗? (任何更好的方法)。php公共属性默认值分配为变量
class File_Link {
public $file_link = 'http://localhost' . $_SERVER["PHP_SELF"]; // CANNOT ASSIGN DEFAULT VALUE
const FILE_LINK = 'myRoot' . $_SERVER['PHP_SELF']; // CANNOT USE LIKE THIS
public $variable_name = "value";
public $variable_name_clone = $variable_name; // // I GET IT -> I CANNOT USE LIKE THIS BUT IT IS A PUBLIC VARIABLE
/*
For a public variable i need use a setter method????? // FOR A SINGLE LINE I HAVE TO USE THE BELOW CODE WHAT THE >>>>>
*/
public $host_link = 'http://localhost'; // THIS WORKS PERFECTLY
public setFileLink() {
$this->file_link . $_SERVER["PHP_SELF"];
}
}
答
您可以使用一个构造函数来设置的值,如下面
class File_Link
{
public $file_link;
public $variable_name = "value";
public $variable_name_clone;
public function __construct()
{
$this->file_link='http://localhost' . $_SERVER["PHP_SELF"];
$this->variable_name_clone = $this->variable_name;
}
}
和常量不能连里面的构造函数定义一次改变,顾名思义,该值不能在执行过程中改变脚本的
你可以参考:http://php.net/manual/en/language.oop5.properties.php
类板v可持续性被称为“属性”。您也可以看到它们使用其他术语(如“属性”或“字段”)引用,但 为了本参考的目的,我们将使用“属性”。它们是 ,通过使用关键字public,protected或private之一定义, 后跟正常的变量声明。 这个声明可能包含一个初始化,但是这个初始化必须是一个常量 值 - 也就是说,它必须能够在编译时进行评估,并且 必须不依赖于运行时信息才能被评估。