我正在构建一个自定义数据处理程序,以便为我的用户节省一些宝贵的带宽。 问题是,我试图将一个对象即时添加到一个数组中。
它没有按预期工作。
任何帮助将不胜感激
function getName() {
return "test";
}
class Parser {
private $results = [];
public function parseCalls($callArray){
for ($i=0; $i < count($callArray); $i++) {
switch($callArray[$i]->call){
case 'getName':
$results[] = (object) ['result' => getName()]; // this is where it fails.
break;
}
}
}
public function sendResult(){
echo json_encode($this->results);
}
}
$parser = new Parser();
if(isset($_POST["callArray"])){
// $_POST['callArray'] contains [{call: 'getName'}];
$callsArray = json_decode($_POST["callArray"]);
$parser->parseCalls($callsArray);
}
$parser->sendResult();
如何使结果数组包含如下内容:
[{result: "test"}]
非常感谢! :)
答案 0 :(得分:1)
你现在似乎已经解决了这个小难题,但我写了这个,并在这样做时发现了问题。
public function parseCalls( $calls=array() ){
foreach( $calls as $i => $call ){
try{
switch( strtolower( $call ) ){
case 'getname':
$this->results[]=(object)array( 'result'=>getName() );
break;
}
}catch( Exception $e ){
die( $e->getMessage() );
}
}
}