PHP OOP更改变量

时间:2015-07-20 09:38:23

标签: php oop

是否可以将像$email, $firstname, $lastname, $gender这样的数组更改为类似$this->email, $this->firstname的数组,更像是循环,所以我只需要填充第一个数组,然后在数组之后才能使用{ {1}}等

2 个答案:

答案 0 :(得分:3)

是的,可以看看这个课程:

Class MyClass {

   public function __construct($myArray){
      foreach($myArray as $key => $value){
          $this->{$key} = $value;
      }
   }
}

$array = array(
   "email" => "example@example.com",
   "firstname" => "John",
   "lastname" => "Doe",
   "gender" => "male"
);

$class = new MyClass($array);

如果您执行var_dump($class),它会显示带有值的属性。

答案 1 :(得分:0)

如果您只想将标量变量放入CLASS,那么PHP中已经定义了一个名为stdClass的类。我假设您在使用->

时使用CLASS

因此,您可以执行

而不是将数据加载到标量变量
$user = new stdClass();
$user ->email = $_POST['email']; 
$user ->firstname = $_POST['firstname'];
$user ->lastname = $_POST['lastname'];
$user ->gender = $_POST['gender']; 

然后,您可以单独引用每个$user ->$email,并使用foreach

循环整个班级
foreach ( $user as $field => $value ) {
    echo $field . ' contains the value ' . $value;
}

当然你应该首先清理$ _POST。