{0}在PHP语句中的含义是什么?

时间:2010-09-16 14:43:14

标签: php

Apols如果之前有人询问过。我正在使用别人的PHP代码并遇到以下问题:

if($_GET['file']{0}=='.') die('Wrong file!');

if,$ _GET和die我明白了,但$ _GET ['file']之后{0}的含义是什么?我查看了很多教程并没有得到答案。

TIA。

4 个答案:

答案 0 :(得分:11)

$str{0}将返回字符串的第一个字符/字节。但是the syntax $str{0} is deprecated in favor of $str[0]

  

注意:为了同样的目的,也可以使用大括号访问字符串,如$str{42}中所示。但是,从PHP 5.3.0开始,不推荐使用此语法。请改用方括号,例如$str[42]

如果您使用的是多字节字符,请改用mb_substr

答案 1 :(得分:5)

{0}[0]相同。因此,$_GET['file']{0}$_GET['files']获得第0个字符。

答案 2 :(得分:4)

这是访问字符串的第一个字符的简写。 $ _GET ['file'] {1}将是第二个字符,依此类推。所以在你的例子中,它检查第一个字符是否是一个点,如果是,则退出;大概是为了避免人们在URL中传递路径,例如../../../ etc / passwd。

答案 3 :(得分:1)

正如其他人所说,它正在查看变量$ _GET ['file']中的字符串位置0,如果恰好是一个点,则会抛出错误。

这看起来像是一种(相对粗糙的)防止黑客攻击的方法,如果他试图访问以点开头的文件,则阻止用户。