一、PHP访问修饰符;
Public: 在本类,父类,子类,外部均可访问;
Protected: 在本类,父类和子类可以访问;
Private:只能在本类访问;
此三种访问修饰符不能修饰类。
二、require,require_once,include,include_once;
加载文件不存在: Include、Include_once产生一个警告warning,程序继续执行;Require、Require_once则导致一个致命错误fatal error,程序停止执行;
文件重复加载:Include、Require会重复加载,并且不报错,require_once、include_once不重复加载,并且不报错。
三、Static 关键字;
Static表示“静态”或者“全局”,修饰变量和方法。
1.Static作用域:静态变量在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。静态变量在每一次脚本开始执行时被初始化,结束时被释放;
2.Static修饰方法:通过类名调用,静态方法中不可以使用this和super关键字,静态方法中不可以调用非static修饰的成员方法和成员变量;
3.Static初始化:静态变量只能被初始化为一个字符值或一个常量,不能使用表达式。
四、Final 关键字;
被Final修饰的类不可有子类;
被Final修饰的方法为不可重写的方法,如果重载会报错;
Final只能修饰类和成员方法,不能修饰成员变量。
五、Safe_model 安全模式;
PHP 的安全模式是为了试图解决共享服务器(shared-server)安全问题而设立的。在结构上,试图在 PHP 层上解决这个问题是不合理的,但修改 web 服务器层和操作系统层显得非常不现实。因此许多人,特别是 ISP,目前使用安全模式。
安全模式限制或者禁止了一部分函数。在执行大部分文件操作类函数时,php会检查被操作的文件或目录是否与被执行的脚本有相同的 UID,包括move_uploaded_file()函数。dl()(调用扩展),shell_exec()被禁止;set_time_limit(),等函数不起作用;exec(),system(),passthr(),popen()等函数只能在 safe_mode_exec_dir设置的目录下进行执行操作。
本特性已自 PHP 5.3.0 起废弃并将自 PHP 5.4.0 起移除。
六、进程和线程的区别;
进程是系统进行资源分配和调度的独立单位,在执行过程中拥有独立的内存单元,拥有一个私有的虚拟地址空间,该空间仅能被它所包含的线程访问。
线程是进程的一个实体,是CPU调度和分派的基本单位,是比进程更小的独立运行的基本单位。线程本身不拥有系统资源,只有运行时必不可少的少部分资源(比如计数器,栈,寄存器),但是与同属一个进程的其他线程共享进程的全部资源。一个线程可以创建撤销另外一个线程,多个线程之间可以并发。线程包含以下内容:指向当前被执行指令的指令指针;栈;寄存器值的集合,定义了一部分描述正在执行线程的处理器状态的值;私有的数据区。 |