• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

PHP为你提供一个叫__toString()的函数,你可以用它来返回表示对象的字符串信息,而且 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

PHP 为你提供一个叫__toString() 的函数,你可以用它来返回表示对象的字符串信息,而且一旦定义它,打印命令将调用它并打印出返回的字符串。

View Code
<?php
class Person
{
    private $name;
    
    function __construct($name)
    {
        $this->name = $name;
    }
    
    function __toString()
    {
        return $this->name;
    }
}

$obj = new Person("小明");
print $obj;
?>

输出结果:

小明

目前__toString() 只能被 print 和 echo 语言结构调用。

 

异常处理(Exception Handling)

    大多数现代的语言都支持一些各自的很流行的 try/catch/throw 异常处理范例。 try/catch 是一个闭合的语言结构,它们保护被其包含的源代码而且会告诉 PHP,“我正在处理发生在这些代码的异常”。异常或者错误在被检测到的时候“抛出”并且 PHP 事实地去搜索它所调用的堆栈,查看是否存在一个相应的 try/catch 结构可以来处理这个异常。

    这种方法有许多好处。首先,你不用放置 if() 语句在任何异常有可能出现的地方;因此可以减少很多代码。你可以把整个部分的代码都装入 try/catch 结构并且当一个错误发生时处理错误。另外,在你用 throw 语句检测到一个错误后,可以轻松地传递到代码中需要负责处理异常的地方并继续让程序执行下去,因为 throw 展开了函数调用的堆栈知道它检测到一个合适的 try/catch 块。

    Try/catch 的语法如下:

Try {

       …  // 会抛出一个异常的代码

} catch (FirstExceptionClass $exception) {

    …   // 会处理这个异常的代码

} catch (SecondExceptionClass) {


}

 

Try{ }结构装入的代码可以抛出一个异常,后面可以加上一系列的 catch 语句,每一个 catch 声明哪个异常应该调用并且在 catch 块中异常的对象应该用什么变量名来访问。

View Code
<?php
class NullHandleException extends Exception
{
    function __construct($message)
    {
        parent::__construct($message);
    }
}
    
function printObject($obj)
{
    if($obj == NULL) {
        throw new NullHandleException("printObject received NULL object");
    }
    print $obj . "<br />";
}

class MyName
{
    function __construct($name)
    {
        $this->name = $name;
    }
    
    function __toString()
    {
        return $this->name;
    }
    private $name;
}
    
try {
    printObject(new MyName("Bill"));
    printObject(NULL);
    printObject(new MyName("jane"));
} catch (NullHandleException $exception) {
    print $exception->getMessage();
    print " in file " . $exception->getFile();
    print " on line " . $exception->getLine() . "<br />";
} catch (Exception $exception) {
    //这里将不会被执行
}

?>

输出结果:

Bill printObject received NULL object in file D:\wamp\www\php5\01\lx19.php on line 13


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php判断是否为搜索引擎蜘蛛转载发布时间:2022-07-10
下一篇:
linux应用之php开发环境lamp搭建(centos)发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap