已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > PHP > 源码

标题: 求解释这段代码

作者: @Ta

时间: 2013-03-10

点击: 4043

<?php
#test 1
if(!isset($foo{5}))
 {
  echo 'fool short';
 }
 
#test 2
$foo = 4;
if(!isset($foo{5}))
 {
  echo 'fool short';
 }
 
#test 3
$foo = 9;
if(!isset($foo{5}))
 {
  echo 'fool short';
 }

?> 
我测试了下输出了三个foo short
为什么?那个判断句在判断什么

大家看我刚试的:
#test 5 有输出
$foo = 'hjkldsior';
if(!isset($foo{5}))
 {
  echo 'fool short';
 } 

#test 6 没有输出
$foo = 'huoejiof';
if(!isset($foo{2-3}))
 {
  echo 'fool short';
 }

[隐藏样式|查看源码]


『回复列表(10|隐藏机器人聊天)』

1. 貌似是长度。你试试,在最前面加个
$foo='agjgpmgjgtj';
(/@Ta/2013-03-10 13:52//)

2. $foo{5}表示这个字符串的第6字节,比如
<?php
$bar='123456789';
echo $bar{5};
?>
以上代码输出6
(/@Ta/2013-03-10 13:57//)

3. @soar
(/@Ta/2013-03-10 14:02//)

4. @Xily  @浪人 看下这个帖子我续的帖子内容
(/@Ta/2013-03-10 14:08//)

5. @soar #test6不能这样使用,像$foo{2-3}这样的是非法的
(/@Ta/2013-03-10 14:16//)

6. 还有,应该是#test5没有输出而#test6有输出吧
(/@Ta/2013-03-10 14:22//)

7. 长度,不是数值
(/@Ta/2013-03-10 14:26//)

8. 最低是0
(/@Ta/2013-03-10 14:26//)

9. @Xily 额,的确是我弄错了
(/@Ta/2013-03-10 14:30//)

10. 就像 @ 说的,这段代码的确是用来判断变量值的长度的,
(/@Ta/2013-03-10 14:32//)

回复需要登录

9月26日 04:39 星期五

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1