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:常用的预定义变量
- 超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量
- $GLOBALS — 引用全局作用域中可用的全部变量
- $_SERVER — 服务器和执行环境信息
- $_GET — HTTP GET 变量
- $_POST — HTTP POST 变量
- $_FILES — HTTP 文件上传变量
- $_REQUEST — HTTP Request 变量
- $_SESSION — Session 变量
- $_ENV — 环境变量
- $_COOKIE — HTTP Cookies
- $php_errormsg — 前一个错误信息
- $HTTP_RAW_POST_DATA — 原生POST数据
- $http_response_header — HTTP 响应头
- $argc — 传递给脚本的参数数目
- $argv — 传递给脚本的参数数组
6:预定义接口中
序列化接口
class A implements Serializable{}
时间: 2024-12-19 05:44:39