PHP OOPを学んでいるので、混乱する部分がたくさんあります。ここでは、public $ file_linkという単一の変数があり、デフォルト値をスーパーグローバル変数として割り当てようとしています。しかし、私はこのようにすることはできません、それは解析エラーを与える。私はファイル全体を何度もチェックしていますが、何が問題なのかを調べるために、私はpublicプロパティの変数としてデフォルト値を割り当てることができません。私はpublic変数のsetterメソッドが必要です。 (より理解しやすいように自分のコードのコメントを参照)パブリックプロパティの値を設定するメソッドが本当に必要なのですか? (これを行うためのよりよい方法)名前が示すようにPHP公開プロパティデフォルト値を変数として割り当てる
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;
}
}
と定数を下回る値は、実行時に変更できないことを、一度定義しても、コンストラクタ内で変更することはできませんようにあなたは、値を設定するコンストラクタを使用することができます
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"];
}
}