0

私は現在、フレームワーク Symfony2 内のエンティティの単純な php 関数に取り組んでいます。何が間違っているのかわかりませんが、その関数はエラーを生成し続けます。コードは次のとおりです。

public function getForm(array $reqFields){
    var $formHelper = new FormHelper;
    var $fields = new array;

    if($reqFields == null){
        foreach ($this->getArray() as $k => $v) {
            array_push($fields, $formHelper->getTextField($v, $k));
        }
    }

    return $formHelper->getForm($fields);
}

FormHelper をインポートしましたが、その中の関数が存在します。実行すると、次のエラーが表示されます。

Parse error: syntax error, unexpected T_VAR

どうしたの?

編集: Netbeans は、$reqFields を初期化する必要があり (ただし、これは引数です:/)、戻り行に識別子が必要であると教えてくれます。

4

3 に答える 3

7

少なくとも次の 2 つのことに気付きます。

  • 配列はオブジェクトではありません。のように配列インスタンスを作成することはできませんnew array
  • このvarキーワードは、PHP 5.3で非推奨になりました。(そして、あなたはそれを間違って使用しています)

だからあなたのコード:

var $formHelper = new FormHelper;
var $fields = new array;

次のようになる必要があります。

$formHelper = new FormHelper;
$fields = array();
于 2012-06-15T09:24:21.860 に答える
3

配列はオブジェクトではありません!
つまり、次のとおりです。

var $fields = array();

また、関数ではなくクラスヘッダーでクラス変数を定義する必要があります。varだから前も消せばいい。

このような:

class Foo
{
   public $fields = array(); // var equals public (you should use public, because var is deprecated)

   public function bar()
   {
      print_r($this->fields); // => Array ( )
   }
}
于 2012-06-15T09:21:57.087 に答える
1
public function getForm(array $reqFields){

php では、パラメーターの型を宣言しないため、次のように変換する必要があります。

public function getForm($reqFields){

また

public function getForm($reqFields = array()){

パラメータもオプションにしたい場合

$formHelper = new FormHelper();

また

$fields = array();

また

foreach ($this->getArray() as $k => $v) {

$this がフォームであると仮定します...使用しない場合$formHelper->getData();

于 2012-06-15T09:29:23.307 に答える