ZF2-语法错误,意外'=>' (T_DOUBLE_ARROW)

时间:2014-08-05 11:50:11

标签: php zend-framework2

我的zend框架2项目涉及一个在线餐厅菜单,我的代码出了问题,因为我遇到了这个错误:

Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW) in   
C:\wamp\www\pizza\module\Pizza\src\Pizza\Model\pizza.php on line 57

请帮我查一下我的代码有什么问题。这是pizza.php文件:

<?php 

namespace Pizza\Model;
use Zend\InputFilter\InputFilter; 
use Zend\InputFilter\InputFilterInterface; 
use Zend\InputFilter\InputFilterAwareInterface;

class Pizza implements InputFilterAwareInterface 
{ 
    public $id; 
    public $name;
    public $ingredients; 
    public $smallprice; 
    public $bigprice; 
    public $familyprice; 
    public $partyprice;
    protected $inputFilter;



public function __construct()
{
} 

public function exchangeArray($data) 
{ 
    $this->id            = (!empty($data['id']))          ? $data['id']               :null;
    $this->name          = (!empty($data['name']))        ? $data['name']         :null;
    $this->ingredients   = (!empty($data['ingredients'])) ? $data['ingredients']  :null;
    $this->smallprice    = (!empty($data['smallprice']))  ? $data['smallprice']   :null;
    $this->bigprice      = (!empty($data['bigprice']))    ? $data['bigprice']     :null;
    $this->familyprice   = (!empty($data['familyprice'])) ? $data['familyprice']  :null;
    $this->partyprice    = (!empty($data['partyprice']))  ? $data['partyprice']   :null;
} 

public function getArrayCopy() 
{ 
    return get_object_vars($this); 
} 


public function setInputFilter(InputFilterInterface $inputfilter)
{ 
    throw new \Exception("not used"); 
}


public function getInputFilter() 
{ 
    if(!$this->inputFilter)
    { 
        $inputfilter = new InputFilter(); 
        $inputfilter->add(array('name' => 'name',
                                'required' => true,
                                'filters' => array('name' => 'StringTrim'),
                                             array('name' => 'StringTags')),
                                'validators' => array(              //line 57
                                                      array(
                                                      'name'    => 'StringLength',
                                                      'options' => array(
                                                                         'encoding' => 'UTF-8',
                                                                         'min'      => 5,
                                                                         'max'      =>30,)
                                                      ))
                                )
                          );

        $inputfilter->add(array('name' => 'ingredients',
                                'required' => true,
                                'filters' => array('name' => 'StringTrim'),
                                             array('name' => 'StringTags')),
                                'validators' => array(
                                                      array(
                                                      'name'    => 'StringLength',
                                                      'options' => array(
                                                                         'encoding' => 'UTF-8',
                                                                         'min'      => 5,
                                                                         'max'      =>255,)
                                                      ))
                                )
                          );

        $inputfilter->add(array('name' => 'smallprice',
                                'required' => true,
                                'filters' => array('name' => 'StringTrim'),
                                             array('name' => 'StringTags')),
                                'validators' => array(               
                                                      array(
                                                      'name'    => 'StringLength',
                                                      'options' => array(
                                                                         'encoding' => 'UTF-8',
                                                                         'min'      => 1,
                                                                         'max'      => 5,),
                                                      ),
                                                      array(
                                                            'name'    => 'float',
                                                            'options' => array(
                                                                               'locale' => 'en_us')
                                                            )
                                                      )
                                )
                          );

        $inputfilter->add(array('name' => 'bigprice',
                                'required' => true,
                                'filters' => array('name' => 'StringTrim'),
                                             array('name' => 'StringTags')),
                                'validators' => array(
                                                      array(
                                                      'name'    => 'StringLength',
                                                      'options' => array(
                                                                         'encoding' => 'UTF-8',
                                                                         'min'      => 1,
                                                                         'max'      => 5,),
                                                      ),
                                                      array(
                                                            'name'    => 'float',
                                                            'options' => array(
                                                                               'locale' => 'en_us')
                                                            )
                                                      )
                                )
                          );


        $inputfilter->add(array('name' => 'familyprice',
                                'required' => true,
                                'filters' => array('name' => 'StringTrim'),
                                             array('name' => 'StringTags')),
                                'validators' => array(
                                                      array(
                                                      'name'    => 'StringLength',
                                                      'options' => array(
                                                                         'encoding' => 'UTF-8',
                                                                         'min'      => 1,
                                                                         'max'      => 5,),
                                                      ),
                                                      array(
                                                            'name'    => 'float',
                                                            'options' => array(
                                                                               'locale' => 'en_us')
                                                            )
                                                      )
                                )
                          );


        $inputfilter->add(array('name' => 'partyprice',
                                'required' => true,
                                'filters' => array('name' => 'StringTrim'),
                                             array('name' => 'StringTags')),
                                'validators' => array(
                                                      array(
                                                      'name'    => 'StringLength',
                                                      'options' => array(
                                                                         'encoding' => 'UTF-8',
                                                                         'min'      => 1,
                                                                         'max'      => 5,),
                                                      ),
                                                      array(
                                                            'name'    => 'float',
                                                            'options' => array(
                                                                               'locale' => 'en_us')
                                                            )
                                                      )
                                )
                          );

        $this->inputFilter=$inputfilter;


    }


    return $this->inputFilter; 
} 



}

2 个答案:

答案 0 :(得分:0)

您在&#39;过滤器&#39;

中缺少数组
'filters' => array('name' => 'StringTrim'), 
             array('name' => 'StringTags')),

应该是:

'filters' => array(array('name' => 'StringTrim'), 
                   array('name' => 'StringTags')),

其他输入也一样。

答案 1 :(得分:0)

您的第一个数组刚好在第57行的'validator'索引之前结束  验证器索引不是任何数组的一部分。它走出阵列。所以'validators' =>显示错误。确保'validators'属于哪个数组...