如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,”“、0、”0”、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。
首先要理解strmp(str1,str2)函数的意思,比较两个字符串的大小,比较时计算了两个字符串相差(不同)字符的个数一起作为返回
情况如下:
1、str1==str2返回02、str1 > str2 返回 1
3、$str1 < str2 返回 -1
注意:对于第2、3种情况,上面列出的只是返回结果的符号而已,并不是最终的结果
最终返回结果是: 所返回的符号乘上两个字符串相比不相同的字符个数
对于本题来说, str=“LAMP”;str1 = “LAMPBrother”;
两个字符串不相同的字符有7个,且 str<str2,返回符号为 -1
所以最终返回的结果为 -7 (-1 * 7)
switch 条件判断case语句都没有匹配的,跳到default:所以执行 echo“str <> str1”;
三元运算符是水平层级的运算,而多层if嵌套是一种递进的运算。无法表示的
子类继承父类,子类的构造函数会覆盖父类的构造函数
属性不能被定义为 final,只有类和方法才能被定义为 final。
实例化A时只会触发__construct()的语句而不触发publicstaticnum=0;。同时num是static,所以会加三次、
对象的复制是通过引用来实现的,a=newA();b=a;相当于a=new A();b=&a;
抽象类可以是个空类,也就是不一定需要有抽象方法。但抽象方法只能存在抽象类中。
__call方法在调用对象中不存在的方法时自动调用的。
在早期php版本中会使用类名定义构造方法,新的PHP版本中推荐使用__construct()来定义。
get_class_vars — 返回由类的默认属性组成的数组 get_class_methods — 返回由类的方法名组成的数组 get_class — 返回对象的类名
PDO::ATTR_ERRMODE: 错误提示 .
PDO::ERRMODE_SILENT: 不显示错误信息,只显示错误码 .
PDO::ERRMODE_WARNING: 显示警告错误 .
PDO::ERRMODE_EXCEPTION: 抛出异常 .
mysqli的num_rows 返回DQL语句的结果集行数,affected_rows取回DML语句受影响行数
1 静态链接库的优点
(1) 代码装载速度快,执行速度略比动态链接库快;
(2) 只需保证在开发者的计算机中有正确的.LIB文件,在以二进制形式发布程序时不需考虑在用户的计算机上.LIB文件是否存在及版本问题,可避免DLL地狱等问题。
2 动态链接库的优点
(1) 更加节省内存并减少页面交换;
(2) DLL文件与EXE文件独立,只要输出接口不变(即名称、参数、返回值类型和调用约定不变),更换DLL文件不会对EXE文件造成任何影响,因而极大地提高了可维护性和可扩展性;
(3) 不同编程语言编写的程序只要按照函数调用约定就可以调用同一个DLL函数;
(4)适用于大规模的软件开发,使开发过程独立、耦合度小,便于不同开发者和开发组织之间进行开发和测试。
3 不足之处
(1) 使用静态链接生成的可执行文件体积较大,包含相同的公共代码,造成浪费;
(2) 使用动态链接库的应用程序不是自完备的,它依赖的DLL模块也要存在,如果使用载入时动态链接,程序启动时发现DLL不存在,系统将终止程序并给出错误信息。而使用运行时动态链接,系统不会终止,但由于DLL中的导出函数不可用,程序会加载失败;速度比静态链接慢。当某个模块更新后,如果新模块与旧的模块不兼容,那么那些需要该模块才能运行的软件,统统撕掉。这在早期Windows中很常见。