【问题标题】:Declare new object instance in variable inside a class in PHP在 PHP 类中的变量中声明新的对象实例
【发布时间】:2023-01-19 03:27:47
【问题描述】:

好吧,我会很清楚,我在将变量声明为另一个类的实例时遇到错误。 这两个类都在不同的文件中,我做了一个简单的例子来快速显示错误是什么。

我得到的错误是以下错误:

PHP message: PHP Fatal error:  New expressions are not supported in this context in Nameclassfile.php on line 6"

我不是 php 专家,目前我正在运行 php 8.1,我什至不确定是否允许将变量声明为其他类的实例。

嗯,我的代码是:

  • 一级文件:Nameclassfile.php
<?php
    require_once "Valueclassfile.php";
    class NameClass {
        private $name;
        private $value = new ValueClass();

        function __construct() {
            $this->name = "Default name";
        }

        function get_name() {
            return $this->name;
        }

    }
?>
  • 二级文件:Valueclassfile.php
<?php
    class ValueClass {
        private $value;

        function __construct() {
            $this->value = "Default Value";
        }

        function get_value() {
            return $this->value;
        }
    }
?>

我希望你能帮我一把,致以最诚挚的问候。

【问题讨论】:

    标签: php oop instance


    【解决方案1】:

    您只能为属性初始化声明静态值。

    class Foo {
        private $value = 123;
    }
    

    您不能使用需要像这样执行的代码:

    class Foo {
        private $value = call_some_function();
    }
    

    或这个:

    class Foo {
        private $value = new ValueClass();
    }
    

    所以你必须在构造函数中进行初始化:

    class NameClass {
        private $value;
    
        function __construct() {
            $this->value = new ValueClass();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      • 2013-07-02
      • 2013-11-11
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多