Php 如何将关联数组中的值动态指定给特性
我正在尝试将关联数组中的键和值分配给类属性。下面的代码就是我想到的。尝试使用$user对象时出错。数组可能来自运行数据库查询(PDO) 有没有办法让这一切顺利进行Php 如何将关联数组中的值动态指定给特性,php,arrays,oop,Php,Arrays,Oop,我正在尝试将关联数组中的键和值分配给类属性。下面的代码就是我想到的。尝试使用$user对象时出错。数组可能来自运行数据库查询(PDO) 有没有办法让这一切顺利进行 <?php class assoctoprop { public $fname; public $lname; public $email; public function assign(){ $user = new assoctoprop; $array = array("fname"=>"firs
<?php
class assoctoprop {
public $fname;
public $lname;
public $email;
public function assign(){
$user = new assoctoprop;
$array = array("fname"=>"firstname", "lname"=>"lastname", "email"=>"my@email.com" );
foreach($array as $key=>$value){
$user->$key = $value;
}
return $user;
}
}
echo $user->fname."<br/>";
echo $user->lname."<br/>";
echo $user->email."<br/>";
?>
这很有效
<?php
class assoctoprop {
public $fname;
public $lname;
public $email;
/*public function assign(){
$user = new assoctoprop;
$array = array("fname"=>"firstname", "lname"=>"lastname", "email"=>"my@email.com" );
foreach($array as $key=>$value){
$user->$key = $value;
}
return $user;
}*/
}
$user = new assoctoprop;
$array = array("fname"=>"firstname", "lname"=>"lastname", "email"=>"my@email.com" );
foreach($array as $key=>$value){
$user->$key = $value;
}
echo $user->fname;
echo $user->lname;
echo $user->email;
?>
但我的问题是,我想把整个过程推进到一个方法中,这样我就可以在我想的时候使用它,而不必每次都重新编写过程在我看来,assign()
此时应该在类之外
可以从类本身实例化类,但在本例中不需要这样做。只需使用$this
从内部引用类:
class assoctoprop {
public $fname;
public $lname;
public $email;
public function assign(){
$array = array("fname"=>"firstname", "lname"=>"lastname", "email"=>"my@email.com" );
foreach($array as $key=>$value){
$this->$key = $value;
}
}
}
$user = new assoctoprop;
$user->assign();
echo $user->fname."<br/>";
echo $user->lname."<br/>";
echo $user->email."<br/>";
编辑2:关于使用可能还不存在的类属性(如果您想使其成为动态的)。在我看来,assign()
此时应该在类之外
可以从类本身实例化类,但在本例中不需要这样做。只需使用$this
从内部引用类:
class assoctoprop {
public $fname;
public $lname;
public $email;
public function assign(){
$array = array("fname"=>"firstname", "lname"=>"lastname", "email"=>"my@email.com" );
foreach($array as $key=>$value){
$this->$key = $value;
}
}
}
$user = new assoctoprop;
$user->assign();
echo $user->fname."<br/>";
echo $user->lname."<br/>";
echo $user->email."<br/>";
编辑2:关于使用可能还不存在的类属性(如果您想使其成为动态的)。除非我误解了您的问题,否则您可以通过将数组上的类型设置为object来完成同样的任务
$object = (object)array("fname" => "firstname", "lname" => "lastname", "email" => "my@email.com");
除非我误解了您的问题,否则您可以通过将数组上的类型设置为object来完成同样的任务
$object = (object)array("fname" => "firstname", "lname" => "lastname", "email" => "my@email.com");
对我可以从assign方法中实例化该类吗?如果您使用PDO,则可以将结果作为用户定义的对象返回。可以使用PDOStatement对象的setFetchMode()方法返回对象。对我可以从assign方法中实例化该类吗?如果您使用PDO,则可以将结果作为用户定义的对象返回。可以使用PDOStatement对象的setFetchMode()方法返回对象。