1、?phpechocount(strlen(“
Prel风格:匹配正则表达式preg_match和替换preg_replace
Preg_match比ereg的执行效率更快,preg_replace比ereg_replace的执行效率更快。
5、如何在命令下运行php脚本(写出两种方式),如何向php脚本传递参数?
答案:第一种方式:先进入php安装目录,执行php路径/文件名.php。
例:phpmy_script.phpphp-f"my_script.php"
第二种方式:php-r“php脚本”;(不需要加php的开始符和结束符)。
例:php-r"print_r(get_defined_constants());"
向php脚本传递参数:
第一种方式:php-r"var_dump($argv);"---h(注意:如果要传递的参数开头为-,那么得使用参数列表分隔符--才能正确传参。)
第二种方式:test.php文件代码:#!/usr/bin/php?phpvar_dump($argv);?
./test.php-h--foo(在php文件开头加入#!/usr/bin/php,即可直接传递以-为开头得参数)
6、php5中魔术方法有哪几个?请举例说明各自的用法。
答案:
1、__construct():实例化对象时自动调用。
2、__destruct():销毁对象或脚本执行结束时自动调用。
3、__call():调用对象不存在得方法时执行此函数。
4、__get():获取对象不存在的属性时执行此函数。
5、__set():设置对象不存在的属性时执行此函数。
6、__isset():检测对象的某个属性是否存在时执行此函数。
7、__unset():销毁对象的某个属性时执行此函数。
8、__toString():将对象当作字符串输出时执行此函数。
9、__clone():克隆对象时执行此函数。
10、__autoload():实例化对象时,当类不存在时,执行此函数自动加载类。
11、__sleep():serialize之前被调用,可以指定要序列化的对象属性。
12、__wakeup:unserialize之前被调用,可以执行对象的初始化工作。
13、__set_state():调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。
14、__invoke():将对象当作函数来使用时执行此方法,通常不推荐这样做。
7、简述php的垃圾收集机制。
答案:php中的变量存储在变量容器zval中,zval中除了存储变量类型和值外,还有is_ref和refcount字段。refcount表示指向变量的元素个数,is_ref表示变量是否有别名。如果refcount为0时,就回收该变量容器。如果一个zval的refcount减1之后大于0,它就会进入垃圾缓冲区。当缓冲区达到最大值后,回收算法会循环遍历zval,判断其是否为垃圾,并进行释放处理。
关于此问题(