一个简单的php自定义异常类,供初学者参考。
<?php
/**
* 自定义一个异常处理类
*/
class MyException extends Exception
{
// 重定义构造器使 message 变为必须被指定的属性
public function __construct($message, $code = 0) {
// 自定义的代码
// 确保所有变量都被正确赋值
parent::__construct($message, $code);
}
// 自定义字符串输出的样式
public function __toString() {
return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
}
}
/**
* 创建一个用于测试异常处理机制的类
*/
class TestException
{
function __construct($str) {
if($str == 1)
throw new MyException('参数不能为1哦',1);
elseif($str == 2)
throw new MyException('参数不能为2哦',2);//抛出2个异常
else
echo $str;
}
}
try {
$o = new TestException(2);
} catch (MyException $e) { // 捕获异常
echo $e;
}
?>
您可能感兴趣的文章:
PHP 异常处理相关知识
使用php异常处理类Exception的例子
PHP5 的异常处理、错误的抛出及回调函数等
php中的异常处理、错误的抛出及错误回调函数
学习PHP错误与异常设置
php支持多线程下载的例子,主要用到了http协议中的RANGE相关的内容,有需要的朋友可以参考下。
<?php
header("Cache-Control: public");
header("Accept-Ranges: bytes");
$file = "a.7z";
$filename = "a.7z";
$size=filesize($file);
$size1=$size-1;
//获得字节范围
if(isset()($_SERVER['HTTP_RANGE'])) {
list($name, $range) = explode()("=",$_SERVER['HTTP_RANGE']);
$length=$size1-$range;
header("HTTP/1.1 206 Partial Content"); //http协议头状态码,表示以部分内容传输
header("Content-Range: bytes ".$range."-".$size1."/".$size);
}else{
$length = $size;
}
header("Content-Length: $length");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=".$filename);
$fp=fopen($file,"rb");
//设定文件指针位置
fseek($fp,$range);
while(!feof($fp)){
set_time_limit(0);
echo fread($fp,1024);
flush();
ob_flush();
}
fclose($fp);
exit;
?>
php中的json_decode()有两个参数,第一个是待解析的字符串,第二个是是否解析为Array。
该函数要求的字符串比较严格:
(1)使用UTF-8编码
(2)不能在最后元素有逗号
(3)不能使用单引号
(4)不能有\r,\t,如果有请替换