可能大家都知道,php中有一个函数叫debug_backtrace,它可以回溯跟踪函数的调用信息,可以说是一个调试利器。
定义和用法
PHP debug_backtrace() 函数生成一个 backtrace(回溯信息)。
该函数返回一个关联数组。下面是可能返回的元素:
名称 | 类型 | 描述 |
function | 字符串 | 当前的函数名。 |
line | 整数 | 当前的行号。 |
file | 字符串 | 当前的文件名。 |
class | 字符串 | 当前的类名 |
object | 对象 | 当前对象。 |
type | 字符串 | 当前的调用类型,可能的调用:
|
args | 数组 | 如果在函数中,列出函数参数。如果在被引用的文件中,列出被引用的文件名。 |
一、错误、异常 等级常量表
error:不能在编译期发现的运行期错误,比如试图用 echo 输出一个未赋值的变量,这类问题往往导致程序或逻辑无法继续下去而需要中断;
exception:程序执行过程中出现意料之外的情况,逻辑上往往是行得通的,但不符合应用场景,比如接收到一个长度超出预定格式的用户命名,因此,异常主要靠编码人员做预先做判断后抛出,捕获异常后改变程序流程来处理这些情况,不必中断程序。
可以用 define() 函数来定义常量。在 PHP 5.3.0 以后,可以使用 const 关键字在类定义的外部定义常量,先前版本const 关键字只能在类(class)中使用。一个常量一旦被定义,就不能再改变或者取消定义。
PHP5.3当中就引入了“命名空间”的概念,一直都没怎么关注和使用,其实学习它也挺简单的,看官方的教程就行了:
。。。
使用建议:
1、只把“类”命令空间化,其他的(如函数、常量)最好还是保留全局(命名空间),方便调用!
2、命名空间 + autoload机制,实现“类文件”自动加载;
PHP isset() 与 PHP empty() 的区别
很多人都拿 PHP isset() 和 PHP empty()进行比较,不过得出的结论一般都是 PHP isset() 判断这个参数是否存在,且不为NULL,即使用 PHP isset() 判断空值、0、布尔值(TRUE/FALSE)都是TRUE,而且 PHP isset() 还可以对数组进行判断。
关于数字、数据处理的几个PHP函数汇总
PHP preg_replace() 正则替换,与JavaScript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素。
preg_replace (正则表达式, 替换成, 字符串, 最大替换次数【默认-1,无数次】, 替换次数)
大部分语言的正则表达式都是差不多的,不过也有细微的差异。
在小皮面板里面安装自带的composer
花括号,很多语言都以花括号作为作用域界限,PHP中只有函数的花括号才构成新的作用域。
闭包作用域跟函数类似,内层访问外层变量,外层不能访问内层变量。