码迷,mamicode.com
首页 > Web开发 > 详细

学习php记录《九》

时间:2015-08-21 23:06:09      阅读:272      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!