【问题标题】:Adding a defined variable to a private class in PHP将定义的变量添加到 PHP 中的私有类
【发布时间】:2014-11-20 22:00:35
【问题描述】:

为什么我不能将变量 ($last_id) 携带到类中?

//get value of last sql row
$last_id = $conn->lastInsertId():
//create class
Class CropAvatar {
  private $id = $last_id;
  private $src;
  private $dstDir = '../some path';
}

private $src 和 private dstDir 工作正常。

如何将变量的值携带到类中?

【问题讨论】:

  • 通过构造函数传递 var 或为你的类成员创建一个 getter/setter
  • 你不能用表达式的结果初始化一个类属性。只有常量值,或者在编译时可以被视为常量的东西。 $id = 42 会工作。 $id = $last_id 不会。
  • 因为$last_id 只在“运行时”才知道。

标签: php class private


【解决方案1】:

您可以根据需要在类中获得该值。您可以通过使用如下构造函数来实现您的目标:

Class CropAvatar {

  private $id;
  private $src;
  private $dstDir = '../some path';

  public function __construct($last_id) {
    $this->id = $last_id;
  }

}

【讨论】:

    【解决方案2】:

    你应该像这样使用构造函数:

    Class CropAvatar {
      private $id;
      private $src;
      private $dstDir = '../some path';
      function __construct($id) {
         $this->id = $id;
      }
    }
    
    //get value of last sql row
    $last_id = $conn->lastInsertId():
    $myClass = new CropAvatar($last_id);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      • 2014-11-09
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多