学习php记录《九》

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(), "
";
}


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,
";
}

输出的结果就是:

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{}

原文地址:https://www.cnblogs.com/-Doraemon/p/4749053.html