Mac*_*Mac 4 php variables definition
我终于想起了要问的问题.我从来没有真正得到过什么:和?当像这样定义一个变量时:
$ip = ($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
Run Code Online (Sandbox Code Playgroud)
你可以看到有吗?和:和()
谁能给我一个关于它们的原因和方式的简要细节?
Joh*_*lla 24
表达式如下所示:
$var = (condition) ? if_true : if_false
Run Code Online (Sandbox Code Playgroud)
?:
是三元运算符.如果condition
为true,$var
将赋值if_true
; 否则将分配该值if_false
.
在您的特定情况下:
如果存在,则将X-Forwarded-For
HTTP标头的值分配给$ip
它; 否则它使用远程地址本身.
这通常用作获取客户端IP地址的方法.但请注意,通常这是检查客户身份的可怕方法.请参阅此StackOverflow问题.(如果您需要确保用户不互相辱骂,请使用会话cookie或某种身份验证.)
而且,它HTTP_X_FORWARDED_FOR
不是HTTP_X_FORWARD_FOR
.
最后,HTTP_X_FORWARDED_FOR
可以是以逗号分隔的IP地址列表,而不仅仅是单个IP地址,因此这可能是一个错误.
归档时间: |
|
查看次数: |
935 次 |
最近记录: |