zoukankan      html  css  js  c++  java
  • 学习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{}

  • 相关阅读:
    WCF使用net.tcp寄宿到IIS中
    (转)Dubbo 简单Dome搭建
    Linux压缩解压
    Linux关闭开启防火墙命令
    简单登录(jsp+servlet)
    UVa 10285 Longest Run on a Snowboard [DP]
    UVa 1218 Perfect Service [DFS+DP]
    第三届ACM山东省赛 Pick apples [贪心+动规]
    ZOJ 3326
    HDU 1029
  • 原文地址:https://www.cnblogs.com/-Doraemon/p/4749053.html
Copyright © 2011-2022 走看看