将具有属性和值的对象添加到数组PHP中

时间:2016-09-13 16:14:48

标签: php

我正在构建一个自定义数据处理程序,以便为我的用户节省一些宝贵的带宽。 问题是,我试图将一个对象即时添加到一个数组中。

它没有按预期工作。

任何帮助将不胜感激

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"}]

非常感谢! :)

1 个答案:

答案 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() );
        }
    }
}