【问题标题】:Can I assign a value to a var from another which I don't know if exist in one row?我可以为另一个我不知道是否存在于一行中的 var 分配一个值吗?
【发布时间】:2016-02-26 09:54:40
【问题描述】:

我正在寻找一种更好、更简单的方法来做到这一点。我记得我在某处看到了速记。

if (isset($user['passport'])) $passport=$user['passport'];

已编辑以让您了解我的意思

经典 ASP:

user=request.form("user")
response.write user

ASP 不关心用户是否存在,所以 什么都不打印

在 PHP 中也是如此

$user=$_POST['user'];
echo $user;

PHP 打印注意:未定义变量

【问题讨论】:

  • 这样??? $passport = (isset($user['passport']) ? $user['passport'] : '');
  • @devpro 将其作为答案发布
  • @LPK:好的,是的,作为答案发布.. :)
  • 检查你的编辑,你需要使用 isset() 否则你会在 php 中得到未定义的通知
  • 我知道,这就是我问最快方法的原因

标签: php variables if-statement asp-classic isset


【解决方案1】:

如果您需要速记条件,则可以使用ternary operator 作为:

$passport = (isset($user['passport']) ? $user['passport'] : '');

【讨论】:

  • 我喜欢你的回答,这也可以不带括号但无论如何我必须重复所有答案 $user['passport']
【解决方案2】:

您可以为此使用 PHP 三元运算符

链接了解三元运算符http://php.net/manual/en/language.operators.comparison.php

示例 php 代码

<?php
// Example usage for: Ternary Operator
$passport = (isset($user['passport'])) ? $user['passport'] : '';

// The above is identical to this if/else statement
if (isset($user['passport'])) {
    $passport = $user['passport'];
} else {
    $passport = '';
}
?>

【讨论】:

    【解决方案3】:

    试试这个:

    $passport = ($user['passport'])?: '';
    

    【讨论】:

    • 注意:未定义索引:护照:(
    • error_reporting(E_ALL); $用户 = 数组(); AND $user = array('passport'=>'passport'); $passport = ($user['passport'])?: '';回声 $passport;
    • 我已经在你的报价上面添加了两个测试用例,对我来说都很好
    • 如果 $user 不包含护照怎么办??
    • 在这种情况下,您可以像这样添加@$user['passport']
    【解决方案4】:

    经典 ASP '可能不关心',但不要被显然不存在的值所迷惑。有时它们确实包含一些东西,例如Nothing。当然,这一切都取决于价值的原始来源。

    我倾向于使用一种快速而肮脏的方法来强制特定类型的变体是在开头附加一个空字符串,例如:

    user = "" & Request.Form("user")
    'As a numeric example from a different source...
    count = CInt("0" & rs("record_count"))
    

    对于 PHP,您可以考虑:

    $passport = "" . $user[passport];
    

    (不幸的是,我对 PHP 了解不多。)

    【讨论】:

      【解决方案5】:
      $passport=$user['passport']?$user['passport']:"Value if not set";
      

      【讨论】:

      • 即使 $user['passport'] 不是 bool 也可以,请尝试。
      • 你是对的。但为什么?因为 $user['passport'] 不为空?
      • 不,即使它的 null 也可以工作,默认情况下它认为它像 isset。
      • 注意:未定义索引:护照
      • @Vixed - 你使用的是哪个 php 版本?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 2020-10-04
      • 2014-03-08
      • 1970-01-01
      • 2012-03-11
      • 2020-12-01
      相关资源
      最近更新 更多