当前位置: 首页 > 面试题库 >

是否可以在PHP中动态定义类属性值?

微生乐
2023-03-14
问题内容

是否可以定义PHP类的属性并使用同一类中的属性动态分配值?就像是:

class user {
    public $firstname = "jing";
    public $lastname  = "ping";
    public $balance   = 10;
    public $newCredit = 5;
    public $fullname  = $this->firstname.' '.$this->lastname;
    public $totalBal  = $this->balance+$this->newCredit;

    function login() {
        //some method goes here!
    }
}

产量:

解析错误:语法错误,第6行出现意外的’$ this’(T_VARIABLE)

上面的代码有什么问题吗?如果是这样,请指导我,如果不可能,那么实现此目的的最佳方法是什么?


问题答案:

您可以像这样将其放入构造函数中:

public function __construct() {
    $this->fullname  = $this->firstname.' '.$this->lastname;
    $this->totalBal  = $this->balance+$this->newCredit;
}

您为什么不能按照自己的方式去做?手册中的引言对此进行了解释:

该声明可以包括一个初始化,但是此 初始化必须是一个常量值 -也就是说,它必须能够在编译时进行评估, 并且必须不依赖于运行时信息
才能进行评估。



 类似资料:
  • 问题内容: 因此,我拥有这个现有的数据库架构,其中包含许多要使用JPA / Hibernate建模的表。每个表具有同一组,每组包含30个其他列(以允许运行时扩展记录的字段数)。 我计划为每个表定义简单的类 然后在公共类中定义公共附加参数 尽管这行得通,但我不喜欢此类的硬编码性质。 我想将每组字符串,长字段和双精度字段建模为一个附加参数组,然后将其设置为0..9组。如果需要的话,这样我以后可以轻松添

  • 问题内容: 如果我有发言权,。 当然,分配新的属性没有问题, 但是之后我想将其删除,因此这里无济于事。 所以, 是这样的。但是,还有一种更“优雅”的方式吗? 问题答案: 这适用于数组元素,变量和对象属性。 例:

  • 问题内容: Python 3.4引入了一个新模块,该模块向该语言添加了枚举类型。的文档提供了一个示例来演示如何扩展它: 此示例还演示了一个问题:在property方法中,定义了一个常量,该常量通常在类级别定义- 但是尝试在a级别内执行此操作只会将其添加为枚举的成员之一,因此,在方法内部定义。 如果该类想在其他方法中使用此常量,则也必须在其中定义它,这显然不是理想的选择。 有什么方法可以在中定义类常

  • 问题内容: 有没有办法动态创建所有实例属性?例如,我想能够产生在构造函数中的所有属性,仍然能够访问它们的类实例化这样的后:。注意,我想单独访问属性,而不是使用数组。这是我 不 想要的例子: 更具体地说,当我处理具有大量属性的类时,我希望能够选择数据库中的所有列(代表属性)并从中创建实例属性。每个列值应存储在单独的实例属性中。 问题答案: 有点。有一些魔术方法可以让您连接自己的代码以在运行时实现类行

  • 问题内容: 是否可以向HTML标记添加自定义属性,如下所示? 问题答案: 您可以修改!DOCTYPE声明(即DTD)以允许它,以便[XML]文档仍然有效: 表示它是可选属性,或者您可以使用,等等。

  • 问题内容: 我想在PHP中创建一个静态类,并使其行为像在C#中一样,所以 在第一次调用类时会自动调用构造函数 无需实例化 这种东西… 问题答案: 您可以在PHP中拥有静态类,但它们不会自动调用构造函数(如果尝试调用,则会收到错误)。 因此,您必须创建一个函数并在每个方法中调用它: