Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 表达式不允许-使用新对象设置类变量_Php_Oop_Object - Fatal编程技术网

Php 表达式不允许-使用新对象设置类变量

Php 表达式不允许-使用新对象设置类变量,php,oop,object,Php,Oop,Object,我试着做以下事情: class Foo { private $bar = new baz(); // Expression is not allowed as field default value } class Baz { public function __construct() { echo "hello world"; } } 我找不到任何不允许该表达式的结果。为什么我可以分配字符串、整数和其他数据类型,但不能分配对象?这就是PHP的工作方式

我试着做以下事情:

class Foo {
    private $bar = new baz(); // Expression is not allowed as field default value
}

class Baz {
    public function __construct() {
        echo "hello world";
    }
}

我找不到任何不允许该表达式的结果。为什么我可以分配字符串、整数和其他数据类型,但不能分配对象?

这就是PHP的工作方式。不能在类属性中使用函数(包括构造函数)

属性是蓝图,必须独立于运行时 环境()

您可以通过
\uuu构造()


这就是PHP的工作方式。不能在类属性中使用函数(包括构造函数)

属性是蓝图,必须独立于运行时 环境()

您可以通过
\uuu构造()


这应该对你有用

<?php
class Baz {
    public function __construct() {
        echo "hello world";
    }
}
class Foo {
  private $bar;
  function __construct(){
    $bar = new Baz(); // Expression is not allowed as field default value
  }

}
?>

这应该适合您

<?php
class Baz {
    public function __construct() {
        echo "hello world";
    }
}
class Foo {
  private $bar;
  function __construct(){
    $bar = new Baz(); // Expression is not allowed as field default value
  }

}
?>


您不能从需要扩展
Baz
或通过
Foo
传递
Baz
的类内部调用类以使用
Baz
作为变量您不能从需要扩展
Baz
或通过
Foo
的构造传递
Baz
的类内部调用类
Baz
作为变量