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

声明类常量或变量时不能使用连接(直到 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 回答