2020年PHP⾯试题1.echo、print、print_r、var_dump区别echo和print是语⾔结构、print_r和var_dump是普通函数echo:输出⼀个或多个字符串print:输出字符串print_r:打印关于变量的易于理解的信息var_dump:打印关于变量的易于理解的信息(带类型)2.单引号和双引号的区别双引号可以被分析器解析,单引号则不⾏3.isset和empty的区别isset:检测变量是否已设置并且⾮NULLempty:判断变量是否为空,变量为0/false也会被认为是空;变量不存在,不会产⽣警告4.static、self、$this的区别static:static可以⽤于静态或⾮静态⽅法中,也可以访问类的静态属性、静态⽅法、常量和⾮静态⽅法,但不能访问⾮静态属性self:可以⽤于访问类的静态属性、静态⽅法和常量,但self指向的是当前定义所在的类,这是self的限制$this:指向的是实际调⽤时的对象,也就是说,实际运⾏过程中,谁调⽤了类的属性或⽅法,$this指向的就是哪个对象。但$this不能访问类的静态属性和常量,且$this不能存在于静态⽅法中5.include、require、include_once、require_once的区别require和include⼏乎完全⼀样,除了处理失败的⽅式不同之外。require在出错时产⽣E_COMPILE_ERROR级别的错误。换句话说将导致脚本中⽌⽽include只产⽣警告(E_WARNING),脚本会继续运⾏include_once语句在脚本执⾏期间包含并运⾏指定⽂件。此⾏为和include语句类似,唯⼀区别是如果该⽂件中已经被包含过,则不会再次包含。如同此语句名字暗示的那样,只会包含⼀次6.常⻅数组函数array_count_values—统计数组中所有的值array_flip—交换数组中的键和值array_merge—合并⼀个或多个数组array_multisort—对多个数组或多维数组进⾏排序array_pad—以指定⻓度将⼀个值填充进数组array_pop—弹出数组最后⼀个单元(出栈)array_push—将⼀个或多个单元压⼊数组的末尾(⼊栈)array_rand—从数组中随机(伪随机)取出⼀个或多个单元array_keys—返回数组中部分的或所有的键名array_values—返回数组中所有的值count—计算数组中的单元数⽬,或对象中的属性个数sort—对数组排序7.Cookie和SessionCookie:PHP透明的⽀持HTTPcookie。cookie是⼀种远程浏览器端存储数据并以此来跟踪和识别⽤户的机制Session:会话机制(Session)在PHP中⽤于保持⽤户连续访问Web应⽤时的相关数据8.预定义变量对于全部脚本⽽⾔,PHP提供了⼤量的预定义变量超全局变量—超全局变量是在全部作⽤域中始终可⽤的内置变量超全局变量PHP中的许多预定义变量都是“超全局的”,这意味着它们在⼀个脚本的全部作⽤域中都可⽤。在函数或⽅法中⽆需执⾏global$variable;就可以访问它们超全局变量:$GLOBALS、$SERVER、$GET、$POST、$FILES、$COOKIE、$SESSION、$REQUEST、$ENV9.传值和传引⽤的区别传值导致对象⽣成了⼀个拷⻉,传引⽤则可以⽤两个变量指向同⼀个内容10.构造函数和析构函数构造函数:PHP5允⾏开发者在⼀个类中定义⼀个⽅法作为构造函数。具有构造函数的类会在每次创建新对象时先调⽤此⽅法,所以⾮常适合在使⽤对象之前做⼀些初始化⼯作析构函数:PHP5引⼊了析构函数的概念,这类似于其它⾯向对象的语⾔,如C++。析构函数会在到某个对象的所有引⽤都被删除或者当对象被显式销毁时执⾏$GLOBALS—引⽤全局作⽤域中可⽤的全部变量$_SERVER—服务器和执⾏环境信息$_GET—HTTPGET变量$_POST—HTTPPOST变量$_FILES—HTTP⽂件上传变量$_REQUEST—HTTPRequest变量$_SESSION—Session变量$_ENV—环境变量$_COOKIE—HTTPCookies$php_errormsg—前⼀个错误信息$HTTP_RAW_POST_DATA—原⽣POST数据$http_response_header—HTTP响应头$argc—传递给脚本的参数数⽬$argv—传递给脚本的参数数组123456789101112131411.魔术⽅法construct(),destruct(),call(),callStatic(),get(),set(),isset(),unset(),sleep(),wakeup(),toString(),invoke()等⽅法在PHP中被称为"魔术⽅法"(Magicmethods)12.public、protected、private、final区别对属性或⽅法的访问控制,是通过在前⾯添加关键字public(公有),protected(受保护)或private(私有)来实现的。被定义为公有的类成员可以...