可以在类属性中执行评估吗?

时间:2018-02-27 13:38:56

标签: php

我有一个functions.php文件,其中包含许多需要包含在类中的变量和函数。我之前没有使用过OO PHP,我遇到了最简单的问题。为了解释的目的,我提出了一个简单的案例:

class MyTestClass
{
    public $isTest = true;
    public $isLocalhost = ($_SERVER["HTTP_HOST"] == "localhost");
}

我收到此错误:

  

解析错误:语法错误,第8行的......意外'$ _SERVER'(T_VARIABLE)

第一行(public $isTest = true;)似乎工作正常。在课外,这很好用:$isLocalhost = ($_SERVER["HTTP_HOST"] == "localhost");

是否可以在类属性中执行评估?实现我想要做的最简单的方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以在类中创建访问修饰符,如下所示

class MyTestClass
{
    public $isTest;
    public $isLocalhost;
    function __construct() {
         $this->isTest = true;
         $this->isLocalhost = ($_SERVER["HTTP_HOST"] == "localhost")?$_SERVER["HTTP_HOST"]:'';
    }
}
$MyTestClass= new MyTestClass();
echo $MyTestClass->isLocalhost; // Output : localhost

如果变量具有公共关键字,则可以在课外访问。