gpt4 book ai didi

php - PHP 中的 '?' 、 '()' 和 ':' 符号是什么意思?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:51:48 24 4
gpt4 key购买 nike

我终于想起来要问什么了。我从来没有真正得到什么:和?当像这样定义变量时做:

$ip = ($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];

如您所见,有 ?和 : 和 ( )

谁能简要介绍一下它们的用途和用途?

最佳答案

表达式看起来像这样:

$var = (condition) ? if_true : if_false

?: ternary operator 。如果condition是真的,$var将被分配值 if_true ;否则它将被分配值 if_false .

在您的特定情况下:

  • 这分配了 X-Forwarded-For 的值HTTP header 到 $ip如果存在;否则它使用远程地址本身。

  • 这通常用作获取客户端 IP 地址的方法。但是,请注意,通常这是检查客户端身份的糟糕方法。参见 this StackOverflow question 。 (如果您需要确保用户不会互相攻击,请使用 session cookie 或某种身份验证。)

  • 此外,它是 HTTP_X_FORWARDED_FOR , 不是 HTTP_X_FORWARD_FOR .

  • 最后,HTTP_X_FORWARDED_FOR可以是以逗号分隔的 IP 地址列表,而不仅仅是一个,因此这可能是一个错误。

关于php - PHP 中的 '?' 、 '()' 和 ':' 符号是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3101936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com