gpt4 book ai didi

php - 定义前的实例化类

转载 作者:行者123 更新时间:2023-12-04 02:31:50 24 4
gpt4 key购买 nike

在php.net中是这样写的:类应该在实例化之前定义(在某些情况下这是一项要求)。谁能在需要时举个例子?因为它的典型使用不需要,就像在这个工作正常的例子中:

<?php
$class = "a" ;
$ob = new $class() ;
class a
{
var $city = "new york" ;
}
echo $ob->city ;
?>

最佳答案

这行不通:

new Foo;

if (true) {
class Foo { }
}

有条件声明的类必须在前。基本上,文件“顶层”的任何内容都由解析器在解析文件时直接处理,这是运行时环境执行代码(包括 new Foo)之前的步骤。但是,如果类声明嵌套在 if 之类的语句中,则需要由运行时环境对其进行评估。即使该语句保证为真,解析器也无法评估 if (true),因此类的实际声明被推迟到运行时。在运行时,如果您尝试在 class Foo { } 之前运行 new Foo,它将失败。

关于php - 定义前的实例化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21436699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com