竹笋

注册

 

发新话题 回复该主题

年腾讯PHP工程师面试真题 [复制链接]

1#
白癜风的治愈 http://m.39.net/pf/a_7143439.html

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,判断其是否为垃圾,并进行释放处理。

关于此问题(

分享 转发
TOP
发新话题 回复该主题