[PHP]eval object + var
...
class user_data
{
private $path = "";
private $message_posts = 0;
private $message_posts_time = 0;
private $messages = 0;
private $messages_time = 0;
private $messages_new = 0;
private $messages_new_time = 0;
private $topics = 0;
private $topics_time = 0;
private $posts = 0;
private $posts_time = 0;
public function user_data($path)
{
$this->path = $path;
if(file_exists($this->path))
{
$data = file_get_contents($this->path);
$row = explode("\n",$data);
$i = 0;
$vars = get_object_vars($this);
foreach($vars as $name)
{
eval('$this->' . $name . ' = $row[' . $i . '];'); // andra felet
$i++;
}
}
else
{
$this->save();
}
}
public function save()
{
$data = "";
$value = "";
$vars = get_object_vars($this);
foreach($vars as $name)
{
eval('$value = $this->' . $name . ';'); //första felet
$data .= $value."\n";
}
file_put_contents($this->path,$data);
}
//SET
public function set_message_posts($value)
{
$this->message_posts = $value;
$this->message_posts_time = time();
}
public function set_messages($value)
{
$this->messages = $value;
$this->messages_time = time();
}
public function set_messages_new($value)
{
$this->messages_new = $value;
$this->messages_new_time = time();
}
public function set_topics($value)
{
$this->topics = $value;
$this->topics_time = time();
}
public function set_posts($value)
{
$this->posts = $value;
$this->posts_time = time();
}
//GET
public function message_posts(){return $this->message_posts;}
public function message_posts_time(){return $this->message_posts_time;}
public function messages(){return $this->messages;}
public function messages_time(){return $this->messages_time;}
public function messages_new(){return $this->messages_new;}
public function messages_new_time(){return $this->messages_new_time;}
public function topics(){return $this->topics;}
public function topics_time(){return $this->topics_time;}
public function posts(){return $this->posts;}
public function posts_time(){return $this->posts_time;}
}
Parse error: syntax error, unexpected T_VARIABLE, expecting T_STRING in ...\includes\user.class.php(239) : eval()'d code on line 1
...
Hej! Skulle vilja ha hjälp med att lista ut hur jag ska skriva i eval funktionen så att det står rätt. Har testat $this->$name utan att använda eval men det funkar inte. Det ska bli en loop där alla object var får ett värde men problemet är att omvandla namnet till att inte bli en sträng så det blir "$this->name".
Tack på förhand.