PHP 板


LINE

看板 PHP  RSS
※ 引述《heavenbetula (绿草)》之铭言: : 小弟初学php,看书上范例不是很懂,想麻烦各位大大解惑 : 以下是书中撷取的一小段程式: : session_start(); : if(!session_is_registered("userIP")){ : session_register("userIP"); : $_SESSION["userIP]=$this->getIP; : $sql="update dailyistics set visitNum=visitNum+1 where visitDate='" . $setDate . : "'"; : mysql_query($sql); : }else{ : $_SESSION["userIP"]=$this->getIP; : } : 其中,getIP是一个function的名称(有传回值) : 我的问题是,为什麽在做if判断的时候,userIP都还没有给值,却可以做判断呢? : 因为不是在if中的$_SESSION["userIP] = $this->getIP,userIP才有值,那怎麽没值可以 : 先判断? http://www.php5.idv.tw/modules.php?mod=books&act=show&shid=651 session_is_registered --- 判断变数是否已经登记 语法 : bool session_is_registered (string name) 说明 : 如果变数name在目前的session中已经登记过了,则session_is_registered( )传回true。 所以,如果一开始就没有,你的session_is_registered("userIP")就会回传false 然後前面加一个!就是false变true,所以就执行if里面的东东(登记後给值),他不是指有没有给值而是 指是否登记 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.39.18.11
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/PHP/M.1411481846.A.8DC.html
1F:推 heavenbetula: 那这样session_is_registered("userIP")一定 09/23 22:28
2F:→ heavenbetula: 没有登记罗?因为userIP还没有值 09/23 22:28
3F:→ heavenbetula: 然後因为!的原因所以一定会执行 if里面的动作吗/ 09/23 22:29
4F:→ MOONRAKER: session_is_registered()在5.4已经入土为安了 09/23 22:32
5F:→ MOONRAKER: 相同功能请大方使用isset($_SESSION['userIP']) 09/23 22:33
6F:→ heavenbetula: 5.2.6版本可以使用5.4的语法吗? 09/23 22:34
7F:推 heavenbetula: 抱歉突然觉得上句这个问题很蠢...我去更新= =' 09/23 22:36
8F:→ cf1064: 如果你只有这个页面,第一次进入,IF判断结果应该是TRUE 09/24 00:24
9F:→ cf1064: 然後就会执行到 session_register('userIP'); 09/24 00:25
10F:→ cf1064: 这时候userip就会被登记,然後当你重新整理时 09/24 00:26
11F:→ cf1064: 因为userip被登记且还存在,if的判断结果会变false 09/24 00:27
12F:→ cf1064: session_is_registered('userIP')=true,! true就是false 09/24 00:28
13F:→ cf1064: 就不会执行if内的东西 09/24 00:29
14F:→ cf1064: 不过这个的确之後版本拿掉了,改成isset是一样的运作原理 09/24 00:30
15F:→ cf1064: 另外登记和给值是不一样的事情唷 09/24 00:42
16F:→ cf1064: 早期版本要用session,你要先登记,才能给值 09/24 00:43
17F:→ cf1064: session_register('userIP');把他当成是宣告一个变数 09/24 00:45
18F:→ cf1064: $_SESSION['userIP]=$this->getIP; 就是给变数一个值 09/24 00:46
19F:→ cf1064: session_is_registered('userIP')就是指这个变数是否存在 09/24 00:47
20F:→ cf1064: 如果你宣告一个变数,不给值,判断他是否存在时 09/24 00:47
21F:→ cf1064: 那麽结果会是存在,除非你是判断这个变数里有没有值 09/24 00:48
22F:→ MOONRAKER: 试试看便知,记得满早就可以用isset()检查session了 09/24 09:55
23F:推 heavenbetula: 感谢各位大大热心的解惑! 09/24 19:19
24F:推 heavenbetula: 请问为什麽我改为isset($_SESSION['userIP'])後 09/25 20:30
25F:→ heavenbetula: 永远都不会去执行else...这样结果不对啊> <" 09/25 20:30
26F:→ heavenbetula: 也就是变if(!isset($_SESSION['userIP'])) 09/25 20:32
27F:→ heavenbetula: 然後session_register("userIP");这行删除 09/25 20:33







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP