php常见面试问题
1. 如果没有开启cookies,session如何工作?
PHP中的sessions通常会使用cookies的方法。但是如果没有cookies(浏览器禁用cookies),PHP sessions也可以工作。
没有cookies,php会做两件事:
(1)找到在页面中的所有form表单,PHP在form表单中自动添加隐藏域(name="PHPSESSID"),这个隐藏域的值就是PHP分配给你的session ID,例如:
<form>
<input type="hidden" name="PHPSESSID" value="12345678" >
</form>
当form表单提交到服务器时,PHP能够获得session ID,将能够知道客户端是谁。
(2). PHP将会找到在你页面中的所有links,修改这些links,以至于有一个参数添加到links中,这个参数的名字是PHPSESSID,它的值就是session ID。例如:
如果你的代码中有一个link:
<a href="http://www.example.com">Go to this link><a/>
当被PHP修改后,将会变成下面的样子:
<a href="http://www.example.com?PHPSESSID=72aa95axyz6cd67d82ba0f809277326dd">Go to this link</>
PHPSESSID的名字可以被修改,它主要用来握着PHP session的值。如果你想要修改这个名字,你可以修改php.ini的session.name的值。
如果没有开启cookies,使用的PHP sessions的缺点是什么?
如果你想要分享一个伴随着PHP session的link给其他人,他们就可以使用你使用的session ID。
2. ==和===的区别?
==用来检测左边的值和右边的值是否相等,而===实际上是检测左边的值和右边的值是否相等,还要检测左边和右边是否有相同的变量类型(booleans, ints etc)
举个例子来说明一下:
当检测两个数相等时,最好使用===。但是更重要的是,你需要知道什么时候,为什么使用===。
这个例子中,你必须使用===。
当你使用strpos方法时,它可能会返回0,意味着你搜索的字符串在第一位。这个例子,我们需要确保字符串中不包含“xyz”。
if ( strpos( $inputString, 'xyz' ) == false ) { // do something }
但是上面的代码会带来一个问题,如果xyz在$inputstring的第一位,$strpos将会返回0(因为xyz在第一位)。但是在PHP中会把0当做false,PHP会认为0和false是相等的。但是这并不是我们想要的,尽管$inputString包含字符串xyz,但是0和false的相等告诉我们$inputString并不包含xyz。这个问题可以通过下面的代码解决:
//good code:
if ( strpos( $inputString, 'xyz' ) === false ) { // do something }
php常见面试问题的更多相关文章
- Android开发面试经——6.常见面试官提问Android题②(更新中...)
版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http://blog.csdn.net/fi ...
- Android开发面试经——5.常见面试官提问Android题①
版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客: http://blog.csdn.net/f ...
- 机器学习&数据挖掘笔记(常见面试之机器学习算法思想简单梳理)
机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理) 作者:tornadomeet 出处:http://www.cnblogs.com/tornadomeet 前言: 找工作时( ...
- [转]机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理) 转自http://www.cnblogs.com/tornadomeet/p/3395593.html 前言: 找工作时(I ...
- java异常常见面试问题
java异常常见面试问题 一.java异常的理解 异常主要是处理编译期不能捕获的错误.出现问题时能继续顺利执行下去,而不导致程序终止,确保程序的健壮性. 处理过程:产生异常状态时,如果当前的conte ...
- (转)C/C++ 程序设计员应聘常见 面试笔试 试题深入剖析
C/C++ 程序设计员应聘常见 面试笔试 试题深入剖析 http://www.nowcoder.com/discuss/1826?type=2&order=0&pos=23&p ...
- Hibernate的10个常见面试问题及答案
在Java J2EE方面进行面试时,常被问起的Hibernate面试问题,大多都是针对基于Web的企业级应用开发者的角色的.Hibernate框架在Java界的成功和高度的可接受性使得它成为了Java ...
- Android常见面试笔试题目
Android常见面试笔试题目 1.在多线程编程这块,我们经常要使用Handler,Thread和Runnable这三个类,那么他们之间的关系你是否弄清楚了呢? 答:可以处理消息循环的线程,他是一个拥 ...
- BAT网络运维常见面试题目总结
BAT常见面试题目总结 Author:Danbo 2015-7-11 TCP/IP详解鸟哥Linux的书网络安全ping的原理make的过程文件有哪些类型各种Linux发行版的区别.有关suid的作用 ...
- Java面试题集(七)--Spring常见面试问题【重要】
以下为spring常见面试问题: 1.什么是Spring框架?Spring框架有哪些主要模块? Spring框架是一个为Java应用程序的开发提供了综合.广泛的基础性支持的Java平台. Spring ...
随机推荐
- ios-Ineligible Devices 不被识别的设备
此问题大致分为几种: 1.设备不可用,出现Ineligible Devices,如下图: 此错误因为 Xcode的Deployment Target 大于设备的,选择和设备一样 或者 低于设备的.如下 ...
- iOS自定义字体及类目 分类: ios技术 2015-05-15 16:34 195人阅读 评论(0) 收藏
1:获取字体文件 从各种渠道下载字体文件ttf, 网站或者从别的ipa里扣出来.(以fzltxh.ttf为例) 2:将fzltxh.ttf文件拷贝到工程中 3:在Info.plist中添加项: Fon ...
- iOS 消息推送原理及实现总结 分类: ios技术 2015-03-01 09:22 70人阅读 评论(0) 收藏
在实现消息推送之前先提及几个于推送相关概念,如下图: 1. Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provider可以理解为服 ...
- js盒子模型
1.js盒子模型 指的是通过js中提供的一系列的属性和方法,获取页面中元素的样式信息值 例: #box有很多自己的私有属性: HTMLDivElement.prototype->HTMLElem ...
- RabbitMQ消息队列(九):Publisher的消息确认机制
在前面的文章中提到了queue和consumer之间的消息确认机制:通过设置ack.那么Publisher能不到知道他post的Message有没有到达queue,甚至更近一步,是否被某个Consum ...
- datalog
https://en.wikipedia.org/wiki/Datalog http://www.csd.uoc.gr/~hy562/1112_spring/instr_material/WhatYo ...
- UOJ #192 【UR #14】 最强跳蚤
题目链接:最强跳蚤 这道题本来不想写博客的--但是鉴于自己犯了低级错误,还是写篇博客记载一下. 一开始我的想法和题解里面的算法而比较类似,也是先分解质因数,然后用质因子是否出现偶数次来判断当前这个数是 ...
- iOS 使用 github
1. 创建 github 账号 登陆官网 https://github.com 进行创建. 2. 创建 github 仓库 3. 添加Pods依赖库所需文件 4. github 之 下载历史版本 5. ...
- python 日期格式化常用标记
符号 说明 例子 %a 英文星期的简写 Mon %A 英文星期的完整编写 Monday %b 英文月份的简写 Jun %B 英文月份的完整编写 June ...
- --@angularJS--独立作用域scope绑定策略之=符策略
1.index.html: <!DOCTYPE HTML><html ng-app="app"><head> <title>s ...