file.php
<?php
class File{
private $_dir;
const EXT='.txt';
public function __construct()
{
$this->_dir=dirname(__FILE__).'/files/';
}
public function cacheData($key,$value='',$path=''){
$filename=$this->_dir.$path.$key.self::EXT;
if($value!==''){//将value值写入缓存
if(is_null($value)){
return @unlink($filename);
}
$dir=dirname($filename);
if(!is_dir($dir)){
mkdir($dir,0777);
}
return file_put_contents($filename,json_encode($value));
}
if(!is_file($filename)){
return false;
}else{
return json_decode(file_get_contents($filename),true);
}
}
}
test.php
<?php
require_once "file.php";
$data=array(
'id'=>1,
'name'=>'singwa',
'type'=>array(4,5,6),
'test'=>array(1,45,67=>array(123,'tsysa'),),
);
$file=new File();
//if($file->cacheData('index_mk_cache',$data)){
//var_dump($file->cacheData('index_mk_cache'));exit;
/**
* array
'id' => int 1
'name' => string 'singwa' (length=6)
'type' =>
array
0 => int 4
1 => int 5
2 => int 6
'test' =>
array
0 => int 1
1 => int 45
67 =>
array
0 => int 123
1 => string 'tsysa' (length=5)
*/
//echo "success";
//}else{
// echo "error";
// }
if($file->cacheData('index_mk_cache')) {
echo 'delete success';
}else{
echo 'delete failed';
}
@”错误控制运算符前缀甚至使导致脚本终止的严重错误的错误报告也失效。这意味着如果在某个不存在或类型错误的函数调用前用了“@”来抑制错误信息,那脚本会没有任何迹象显示原因而死在那里。