pejman_view
یک شنبه 01 آبان 1390, 15:07 عصر
سلام
من یک کلاس یوزر نوشتم اما با اینکه می دونم این کد هیچ مشکلی نداره باز ارور می ده
Fatal error: Call to a member function full_name() on a non-object in
از اساتید و دوستان گرامی خیلی ممنون می شم که مرا کمک کنند.
کلاس به شکل ذیل است:
Class User{
public $id;
public $email;
public $password;
public $first_name;
public $last_name;
public static function find_all(){
return self::find_by_sql('SELECT * FROM users');
}
public static function find_by_id($u_id=0){
$r = self::find_by_sql("SELECT * FROM users WHERE user_id={$u_id} LIMIT 1");
return !empty($r) ? array_shift($r) : false;
}
public static function find_by_sql($sql=""){
global $database;
$r = $database->query($sql);
$object_array = array();
while ($row = $database->fetch_array($r)){
$object_array[] = self::instantiate($row);
}
return $object_array;
}
public function full_name(){
if(isset($this->first_name) && isset($this->last_name)){
return $this->first_name." ".$this->last_name;
}else{
return "Error!";
}
}
private static function instantiate($record){
// $user->id = $record['id'];
// $user->email = $record['email'];
// $user->password = $record['pass'];
// $user->first_name = $record['first_name'];
// $user->last_name = $record['last_name'];
$object = new self;
foreach ($record as $attribute=>$value){
if($object->has_attribute($attribute)){
$object->$attribute = $value;
}
}
return $object;
}
private function has_attribute($attribute){
$object_vars = get_object_vars($this);
return array_key_exists($attribute,$object_vars);
}
}
حالا در یک صفحه دیگر این کلاس رو بعلاوه دیگر کلاس ها require_once می کنم. سپس کد زیر رو می نویسم
$user = User::find_by_id(1);
echo $user->full_name();
مطمئنم این کد باید جواب بده اما نمی دونم چرا با این اررور مواجه می شم
Fatal error: Call to a member function full_name() on a non-object in
از اساتید و دوستان محترم خیلی ممنون می شم مرا راهنمایی کنند.
من یک کلاس یوزر نوشتم اما با اینکه می دونم این کد هیچ مشکلی نداره باز ارور می ده
Fatal error: Call to a member function full_name() on a non-object in
از اساتید و دوستان گرامی خیلی ممنون می شم که مرا کمک کنند.
کلاس به شکل ذیل است:
Class User{
public $id;
public $email;
public $password;
public $first_name;
public $last_name;
public static function find_all(){
return self::find_by_sql('SELECT * FROM users');
}
public static function find_by_id($u_id=0){
$r = self::find_by_sql("SELECT * FROM users WHERE user_id={$u_id} LIMIT 1");
return !empty($r) ? array_shift($r) : false;
}
public static function find_by_sql($sql=""){
global $database;
$r = $database->query($sql);
$object_array = array();
while ($row = $database->fetch_array($r)){
$object_array[] = self::instantiate($row);
}
return $object_array;
}
public function full_name(){
if(isset($this->first_name) && isset($this->last_name)){
return $this->first_name." ".$this->last_name;
}else{
return "Error!";
}
}
private static function instantiate($record){
// $user->id = $record['id'];
// $user->email = $record['email'];
// $user->password = $record['pass'];
// $user->first_name = $record['first_name'];
// $user->last_name = $record['last_name'];
$object = new self;
foreach ($record as $attribute=>$value){
if($object->has_attribute($attribute)){
$object->$attribute = $value;
}
}
return $object;
}
private function has_attribute($attribute){
$object_vars = get_object_vars($this);
return array_key_exists($attribute,$object_vars);
}
}
حالا در یک صفحه دیگر این کلاس رو بعلاوه دیگر کلاس ها require_once می کنم. سپس کد زیر رو می نویسم
$user = User::find_by_id(1);
echo $user->full_name();
مطمئنم این کد باید جواب بده اما نمی دونم چرا با این اررور مواجه می شم
Fatal error: Call to a member function full_name() on a non-object in
از اساتید و دوستان محترم خیلی ممنون می شم مرا راهنمایی کنند.