我们如何在电话中使用班级名称中的变量?
例如,我有一个这样调用的类:
<?php
$ig = new Instagram();
$ig->people->getIdByName("param1",array('a','b','c'),"param2");
那么我怎么能像这样调用这个方法呢?:
<?php
$ig = new Instagram();
$main = 'people';
$sub = 'getIdByName';
$content = '"param1",array('a','b','c'),"param2"';
$ig->$main->$sub($content);
答案 0 :(得分:-1)
方法调用就像你在问题中展示的那样工作。所以这部分代码还可以:
$main = 'people';
$sub = 'getIdByName';
$ig->$main->$sub();
最后一个方法的论点怎么样,有2个选项:
PHP&gt; = 5.6
在PHP 5.6中引入了 Variadic parameters,因此您可以将参数保存为数组,并使用...
传递它们:
$args = ["param1",['a','b','c'],"param2"];
$ig->$main->$sub(...$args);
PHP&lt; 5.6 强>
在这种情况下,您应该使用call_user_func_array()
$main = 'people';
$sub = 'getIdByName';
$args = ["param1",['a','b','c'],"param2"];
$main = $ig->$main;
call_user_func_array([$main, $sub], $args];
虽然@Andrew是对的,但这种方法并不灵活,不能用作API提供商的架构。