问题是removeBlog会逐行删除所有行。 我认为我对foreach / fwrite部分有错误。 这是课程消息:
class Message
{
protected $blogLista=[];
protected $file = "blog_tmp/blogdata.txt";
function __construct()
{
if(file_exists($this->file)) {
$txt = fopen($this->file,"r");
while (!feof($txt)) {
$line = fgets($txt);
if (!empty($line)) {
$line_arr = explode(",", $line);
$obj = new Blog ($line_arr[0], $line_arr[1], $line_arr[2]);
$this->blogLista[] = $obj;
}
}
fclose($txt);
}
}
function addBlog($nam,$mes,$dat){
$txtx=fopen($this->file,"a");
fwrite($txtx, "$nam,$mes,$dat".PHP_EOL);
fclose($txtx);
}
function removeBlog($ind){
unset($this->blogLista[$ind]);
$var=fopen($this->file,"w+");
//fwrite($var,$this->blogLista);
foreach ($this->blogLista as $key=>$val){
fwrite($var,"$val->getName(),$val->getMessage,$val->getDate") ;
}
fclose($var);
}
function getBlogLista(){
return $this->blogLista;
}
}
问题是removeBlog会逐行删除所有行。 我认为我对foreach / fwrite部分有错误。 这是博客部分:
class Blog
{
protected $name='';
protected $message='';
protected $date='';
function __construct($nam,$mes,$dat)
{
$this->name=$nam;
$this->message=$mes;
$this->date=$dat;
}
function getName(){
return $this->name;
}
function getMessage(){
return $this->message;
}
function getDate(){
return $this->date;
}
}
答案 0 :(得分:1)
当您尝试调用方法时,您错过了方括号find . -iname *.class -exec javap -c -p {} \; | grep "Method <method name, for instance: java/lang> | sed 's:.*// ::' | sort | uniq -c | sort -h
,并且您无法在双引号内调用方法,例如 [1] 。
尝试替换为:
()
而不是:
fwrite($var,$val->getName().','.$val->getMessage().','.$val->getDate()) ;
[1]见@NigelRen的评论