【问题标题】:Calling php methods with strings用字符串调用php方法
【发布时间】:2011-04-25 23:59:48
【问题描述】:

我有两个对象。对象 A 和 B。

A 有一个返回 B 的方法。我想动态调用它,所以我使用字符串来调用 B 内部的方法,如下所示:

$method = 'getB()->someMethod';

但如果这样做:

$a = new A();
$a->$method();

它不起作用。有什么想法吗?

【问题讨论】:

  • 你不应该先打电话给$a->getB()来得到B吗?
  • 为什么你的方法没有()

标签: php string object methods


【解决方案1】:

你不能那样做。 $method 只能包含A 的方法名。阅读variable functions。不过,您可能必须使用变量,例如

$method1 = 'getB';
$method2 = 'someMethod';

$a->$method1()->$method2();

但也许最好重新考虑问题,考虑代码的另一种结构和/或查看设计模式。

问题是:你的最终目标是什么?

【讨论】:

  • 很抱歉引发了一个旧线程,但这个问题和答案适用于我。我正在考虑为 ajax 调用创建一个 php api。这是否是允许 javascript 将方法作为字符串发送以与对象交互的最佳方式?
  • 你可以这样做。您可能还想看看__call。我不能告诉你什么是最好的方法。听起来您想做远程过程调用(RPC)。已经有一些库,所以你也可以看看那些。
  • 我真正喜欢 php 的地方
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 2012-07-09
  • 2012-06-22
相关资源
最近更新 更多