PDA

View Full Version : مبتدی: دسترسی به خصوصیات یک کلاس



boof1364
شنبه 18 مرداد 1393, 23:18 عصر
سلام
من می خواهم مشخصات یک فرد از جنس کلاس userentity را ثبت کنم.

$userMapper = new UserMapper();
$userMapper->save($user);
تابع save را هم در کلاس usermaper می خواهم تعریف کنم:

function save(UserEntity $user) {
$db=DB::getInstane();


$query="insert into user set firstname='$user->؟؟؟؟',lastname='$user->؟؟؟؟؟'";
$res=$db->query($query);
}

مشکل اینجاست که نمی دونم چجوری باید به خصوصیات user ای که به عنوان پارامتر به تابع save وارد شده دسترسی پیدا کنم و اونا رو در query جایگزین کنم.
داخل کلاس userentity هم توابع get و set رو دارم.اگر خصوصیاتم رو public بگیرم مشکلی ندارم.اما من اون ها رو private گرفتم.لطفا راهنمایی کنید.

arash691
شنبه 18 مرداد 1393, 23:48 عصر
$user->get_fieldname();

یا اینطوری :


<?php
class Student{
private $id;
private $name;
private $grade;

public function __construc($id,$name,$grade){
$this->id = $id;
$this->name = $name;
$this->grade = $grade;
}

public function Save() {
$db = DB::getInstane();
$name = $this->name;
$query= "INSERT INTO `user` SET name = '{$name}' ";
$res = $db->query($query);
return $res;
}
?>

یا به این روش :


<?php
class Student{
private $id;
private $name;
private $grade;

public function __construc($id,$name,$grade){
$this->id = $id;
$this->name = $name;
$this->grade = $grade;
}
public function GetName(){
return $this->name;
}
?>
<?php
class Test{
public static function Save(Student $stu ){
$db = DB::getInstane();
$name = $stu->GetName();
$query= "INSERT INTO `user` SET name = '{$name}' ";
$res = $db->query($query);
return $res;
}
}
?>
<?php
$stu = new Student(10,'arash',15);
Test::Save($stu);
?>