如何在包含命名空间的变量之前连接反斜杠?

How to concatenate a backslash before a variable containing a namespace?

提问人:Duddy67 提问时间:6/30/2023 最后编辑:user3783243Duddy67 更新时间:7/1/2023 访问量:32

问:

我想在字符串的开头附加一个反斜杠以将其用作命名空间。

$class = get_class($model);
$nodes = "\\$class"::defaultOrder()->get();

但是我收到此错误:

调用未定义的方法 App\Models\Post::d efaultOrder()

我只是找不到正确的语法。
有人可以帮我吗?

PHP 命名空间

评论

0赞 Duddy67 7/1/2023
@tttony 它不起作用,因为我在开始时需要一个反斜杠:\App\Models\Post
0赞 MorganFreeFarm 7/1/2023
你能在定义defaultOrder id的地方发布你的类吗?

答:

1赞 nice_dev 7/1/2023 #1

对于此方案,您必须将变量表达式括在大括号中,如复杂表达式部分的文档中所述。所以它会如下所示:

<?php

$nodes = "\\{$class}"::defaultOrder()->get();

现场样品演示