引用是什么?
PHP 的引用允许用两个变量来指向同一个内容。
php垃圾回收机制
php的每个变量,都会存在zval"的变量容器中。有两个字节的额外信息:
is_ref:bool值,通过这个字节php殷勤区分,普通变量和引用变量。
refcount:引用计数,用以表示指向这个zval变量容器的变量个数。当为0时,这个变量容器就会从内存中删除。
php手册,引用计数:https://www.php.net/manual/zh/features.gc.refcounting-basics.php
php错误与异常处理
set_exception_handler():设置用户定义的异常处理函数,用在没有用try/catch块来捕获的异常。
set_error_handler() :设置用户自定义的错误处理函数,一些致命错误,无法捕获。
注意两点 :
1.该函数只能捕获系统产生的一些Warning、Notice级别的错误。
2.如果存在该方法,相应的error_reporting()就不能在使用了。所有的错误都会交给自定义的函数处理
register_shutdown_function():注册一个在关机时执行的函数。
error_get_last();这个函数可以拿到本次执行产生的所有错误。
上面说了,set_error_handler 无法捕捉全部的错误信息,有些错误直接导致系统退出,这些错误会以最原始的方式显示,或者不显示。
这时候 register_shutdown_function 派上用场,此函数会在PHP程序终止或者die时触发一个函数,通过error_get_last() 获取程序中止前的错误信息。
。
个人感觉作者写的很好,至少现在的我是写不出来(再谈PHP错误与异常处理 ),链接:https://www.cnblogs.com/zyf-zhaoyafei/p/6928149.html
静态变量
函数退出作用域的时候,普通变量会直接从栈区域中被销毁掉。而静态变量会驻留在栈区域中不被销毁。一直保存到页面全部运行结束