【问题标题】:a simple php syntax question [duplicate]一个简单的php语法问题[重复]
【发布时间】:2011-03-23 05:18:17
【问题描述】:

我只想从下面的代码中知道?: 指定了什么,如果有人解释我下面的代码,我将不胜感激。谢谢

$country = empty($_POST['country']) ? die ("ERROR: Enter a country") : mysql_escape_string($_POST['country']); 

【问题讨论】:

标签: php


【解决方案1】:

它被称为三元操作符,只是这段代码的简写

if (empty($_POST['country']))
{
  die ("ERROR: Enter a country");
}
else
{
  $country = mysql_escape_string($_POST['country']);
}

语法:

condition ? used if true : used if false;

或者你可以做作业:

variable = condition ? used if true : used if false;

更多信息:

http://www.tuxradar.com/practicalphp/3/12/4

【讨论】:

  • 谢谢你,我期待这样的答案,我不习惯速记..谢谢你的回复.. :)
  • 好答案,+1,但您忘记将 $country = 添加到 else
  • @Igor Zinov'yevL 是的,忘了补充,谢谢:)
  • 更多信息,这里是三元运算符的语法:条件?真值:假值
  • 您好,在其他情况下,我想回显类似链接以返回索引页面的内容,我尝试使用连接但没有发生..检查最后一个字符串 $user = empty( $_POST['user']) ? die("错误:请输入用户名") : mysql_escape_string($_POST['user']) . echo "$_SERVER['PHP_SELF']";我如何做到这一点??
【解决方案2】:

看这个:

PHP syntax question: What does the question mark and colon mean?

它是 PHP 和其他语言中的三元运算符。

【讨论】:

    【解决方案3】:

    $country = empty($_POST['country']) ? die ("ERROR: Enter a country") :

    我想这个脚本接受来自 POST 方法发送的表单的数据。如果 country 变量为空,则退出脚本并显示错误消息。

    mysql_escape_string($_POST['country']);

    这个函数应该返回给定变量的转义值。所以应该这样写

    $country = mysql_escape_string($_POST['country']);

    更多信息在这里:http://php.net/manual/en/function.mysql-escape-string.php

    【讨论】:

      【解决方案4】:
      $country = empty($_POST['country']) ?
                 die ("ERROR: Enter a country") :
                 mysql_escape_string($_POST['country']);
      

      如果表达式empty($_POST['country']) 的计算结果为true,那么die ("ERROR: Enter a country") 将被计算(结果将分配给$country,但事实上die() 会停止脚本执行)。

      另一方面,如果empty($_POST['country']) 计算为false,则mysql_escape_string($_POST['country']) 将被计算,结果将分配给$country

      【讨论】:

      • 您好,在其他情况下,我想回显类似链接以返回索引页面的内容,我尝试使用连接但没有发生..检查最后一个字符串 $user = empty( $_POST['user']) ? die("错误:请输入用户名") : mysql_escape_string($_POST['user']) . echo "$_SERVER['PHP_SELF']";我如何做到这一点??
      • 我不确定您想要实现什么。如果您使用$user = empty($_POST['user']) ? die("Error : Please enter username") : mysql_escape_string($_POST['user']).$_SERVER['PHP_SELF'];,那么假设对empty() 的调用返回false,$User 将是mysql_escape_string($_POST['user'])$_SERVER['PHP_SELF'] 连接。如果你真的想有条件地echo 某事,也许你最好使用if ... else 方法。
      【解决方案5】:

      测试条件:如果 HTML FORM 中的变量为空则打印出“ERROR: Enter a country”,否则设置变量country安全字符..

      【讨论】:

        猜你喜欢
        • 2011-07-19
        • 1970-01-01
        • 1970-01-01
        • 2011-06-04
        • 2023-03-14
        • 1970-01-01
        • 2013-03-17
        • 1970-01-01
        • 2011-04-14
        相关资源
        最近更新 更多