相关疑难解决方法(0)

从PHP中使用动态类名获取静态属性

我有这个:

  • 一个字符串变量,它包含类名($classname)
  • 一个字符串变量with保存属性名称($propertyname)

我想从该类中获取该属性,问题是,属性是静态的,我不知道该怎么做.

如果属性不是静态的,那将是:

$classname->$propertyname;
Run Code Online (Sandbox Code Playgroud)

如果属性是一个方法,我可以使用call_user_function

call_user_func(array($classname, $propertyname));
Run Code Online (Sandbox Code Playgroud)

但就我而言,我只是输了.但我希望这是可能的.有了PHP拥有的数千个函数,他最好还有一些东西.也许我错过了什么?

谢谢!

编辑:

  • 对于那些有eval()解决方案的人:谢谢,但这是不可能的
  • 对于那些使用get _class _vars()解决方案的人:谢谢,但似乎它返回"给定类的默认属性"(php.net),是的,我希望这个值可以变化(即使它确实帮助了我在某些情况下)

php oop static properties dynamic

49
推荐指数
3
解决办法
3万
查看次数

如何获取类中的静态变量列表?

有一个类似的

class MyClass {
    static var1 = "a";
    static var2 = "b";
}
Run Code Online (Sandbox Code Playgroud)

...我想在运行时检索静态成员及其值; 就像是

Array(
    "var1" => "a",
    "var2" => "b"
)
Run Code Online (Sandbox Code Playgroud)

有没有办法在PHP中这样做?

php reflection variables static class

17
推荐指数
1
解决办法
7366
查看次数

Laravel Eloquent Find 在给定字符串模型时不起作用

我在 Laravel 中有一个模型作为字符串存储在变量中。

$model = "App\Models\City";
Run Code Online (Sandbox Code Playgroud)

我想要的是

$model::find(1) to fetch the City with ID of 1
Run Code Online (Sandbox Code Playgroud)

但它没有按预期工作。然而,当我这样做时

City::find(1)
Run Code Online (Sandbox Code Playgroud)

不使用 $model 变量。我可以得到我预期的结果。

任何人?

php laravel eloquent

3
推荐指数
1
解决办法
1820
查看次数

标签 统计

php ×3

static ×2

class ×1

dynamic ×1

eloquent ×1

laravel ×1

oop ×1

properties ×1

reflection ×1

variables ×1