使用两个 $this-> 有更好的选择吗?在同一句话中?

发布于 2024-12-10 01:41:34 字数 350 浏览 0 评论 0原文

如果你这样做:

    $this->$this->name->something();

你肯定会得到一个错误。

我一直在做这样的事情:

    $name =& $this->name;
    $this->$name->something();

但是有更好的方法吗?如果 PHP 有某种方法做类似的事情会更容易:

    $this->'$this->name'->something();

谢谢!

If you do:

    $this->$this->name->something();

You will surely get an error.

I've been doing something like:

    $name =& $this->name;
    $this->$name->something();

But is there a better way for doing that? Would it be easier if PHP had some way of doing something like:

    $this->'$this->name'->something();

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

叫嚣ゝ 2024-12-17 01:41:34

但是有更好的方法吗?如果 PHP 有某种方法可以做到这一点,那就更容易了,比如: $this->'$this->name'->something();

有;

$this->{$this->name}->something( );

但是……你在做什么?你真的需要这个吗?从我现在的立场来看,这似乎是一个奇怪的结构。

But is there a better way for doing that? Would be easier, if PHP has some way to do, something like: $this->'$this->name'->something();

There is;

$this->{$this->name}->something( );

But... what are you doing? Do you really need this? It seems like an odd construct from where I'm standing.

最美不过初阳 2024-12-17 01:41:34

如果 $this->name 是一个对象,那么 $this->name->something() 应该可以正常工作。

编辑:另请注意,如果您的方法返回对象,您可以将方法调用链接起来:

$this->name->something()->somethingElse()->anotherThing();

If $this->name is an object, then $this->name->something() should work just fine.

Edit: Note also, if your methods return objects, you can just chain up the method calls:

$this->name->something()->somethingElse()->anotherThing();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文