0

連結しようとしています:

<?php
class MD_ImpFormularios extends CI_Model {
  private $dir_forms = __DIR__ . 'Hola';

与える:

PHP Parse error:  syntax error, unexpected '.', expecting ',' or ';' in md_impformularios.php on line 3

しかし、ここでは何も問題はありません。CONSTでも静的でもありません。単純な変数です。

ありがとう

4

4 に答える 4

4

クラス定数または変数を宣言するときにconctenationを使用することはできません(php5.5までは、php5.6は連結を使用してクラスプロパティを定義できるため、コンストラクターでそのような処理を行う方がよいと思います)。空の文字列として宣言する必要があります。コンストラクターでは、この変数に値を割り当てることができます。

    <?php
          class MD_ImpFormularios extends CI_Model {
                private $dir_forms = ''; 
                ....
                public function __construct(){
                      $this->dir_forms = __DIR__ . 'Hola'
                }
于 2013-03-12T16:06:11.293 に答える
2

クラス変数を宣言している間は連結を行わないでください。

private $dir_forms = __DIR__ . 'Hola';
                          // ^ This is NOT allowed during declaration

コンストラクター関数を使用して、このような変数を設定できます。

private $dir_forms;
public function __construct() {
    $this -> dir_forms = __DIR__ . 'Hola';
}
于 2013-03-12T16:04:41.453 に答える
1

これは、スティングを連結してプロパティを設定しているためですが、これは許可されていません。この例は、PHPのドキュメントで確認できます。

   // invalid property declarations:
   public $var1 = 'hello ' . 'world';

代わりに、コンストラクターで値を設定する必要があります。

于 2013-03-12T16:06:58.827 に答える
0

クラスプロパティ宣言ではそれを行うことはできません。コンストラクターでそれを行う必要があります:

<?php
class MD_ImpFormularios extends CI_Model {
  private $dir_forms;

  public function __construct() {
    $this->dir_forms = __DIR__ . 'Hola';
  }
}
于 2013-03-12T16:06:43.850 に答える