首页 > Web开发 > 详细

学习php记录《九》

时间:2015-08-21 23:05:58      阅读:270      评论:0      收藏:0      [点我收藏+]

1:命名空间简述: 其实就是java中的package

2:异常处理。

抛出一个异常:

<?php
    function div($a){
        if(!$a){
            throw new Exception("cannot div 0");
        }
    }    
//try catch

try{
    ..something
}catch(Exception $e){
    echo ‘Caught exception ‘, $e->getMessage(), "\n";
}


echo ‘hello world‘;

在编程过程中,尽量少使用try catch。 因为既然知道有这个出错的可能,那就该把他避免了,而不是容许他出错,再解决。

直接throw掉是比较好,这是在之前某个java代码的优化中看到的。在这里应该也是同样适用。

3:生成器:generator

他是用来做对象迭代。

在foreach的代码块中如果要迭代一组数据,你可能需要在内存中创建一个数组,这样会消耗你的内存并且占据处理时间。

而generator函数,通过yield关键字解决这个问题。

 

写一个简单的例子:

<?php

function one_to_three(){
    for($i =1;$i<=3;$i++){
        yield $i;
    }
}

$one_to_three = one_to_three();

foreach($one_to_three as $value){
    echo "$one_to_three,\n";
}

输出的结果就是:

1

2

3

generator做的工作就是每次通过yield把每次的数据保存一下,然后你遍历的时候拿出来用。 你可以在yield后面定义你想要的数据格式。

4:引用 reference

引用传递。这样该函数就可以修改其参数的值。

<?php
function foo(& $s){
    $s++;
}

$a = 5;

foo($a);
//$a = 6 now
?>

注意:!只有在定义函数时加引用的符号&,调用的时候则不需要加!

解绑引用使用:unset($a);

5:常用的预定义变量

6:预定义接口中

序列化接口

class A implements Serializable{}

 

学习php记录《九》

原文:http://www.cnblogs.com/-Doraemon/p/4749053.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!