如果为空,如何添加默认值?

时间:2019-04-16 20:53:12

标签: php html placeholder

我有以下代码:

df = pd.DataFrame({'id': ['A', 'B', 'B', 'C', 'D', 'D' ,'D', 'D', 'D', 'D', 'D'],
                  'hit': ['hit1', 'hit2', 'hit3','hit4', 'hit5','hit6', 'hit7','hit8', 'hit9','hit10', 'hit11'],
                  'from': [56,89,240,332,291,287,381,287,373,514, 599],
                  'to':[102,275,349,480,512,313,426,316,422,600, 602],
                  'value': [0.00085,0.00034,0.00034,3.40E-15,3.80E-24,0.00098,0.00098,0.0029,0.0029,0.0021, 0.002]})

overlapMask =  df.sort_values(by = 'from')\
                 .groupby('id')\
                 .apply(lambda x: np.where(x['from'] < x['to'].shift(), 0 , 1).cumsum())\
                 .reset_index()

df['Mask'] = np.concatenate((overlapMask[0].values))


df.drop_duplicates(subset = ['id','value'], keep = False, inplace = True)


df.sort_values(by = 'value')\
  .groupby(['id', 'Mask'])\
  .head(1)\
  .reset_index()\
  .drop(['Mask', 'index'],axis = 1)\
  .sort_values(by = 'id')


    id  hit    from  to    value
2   A   hit1    56  102 8.500000e-04
1   C   hit4    332 480 3.400000e-15
0   D   hit5    291 512 3.800000e-24
3   D   hit11   599 602 2.000000e-03

如果该值为空,如何向其中添加默认文本?预先感谢!

4 个答案:

答案 0 :(得分:4)

如果要内联处理,可以始终使用三元运算符:

value="<?php echo (!empty(info_username_get_meta( 'your_name' )) ? info_username_get_meta( 'your_name' ) : 'DEFAULT NAME' ; ?>"

或将其拆分并在上面的代码中分配名称:

<?php
$name = (!empty(info_username_get_meta( 'your_name' )) ? info_username_get_meta( 'your_name' ) : 'DEFAULT NAME';
?>
<input class="mt upbb" type="text" name="your_name" id="your_name" value="<?php echo $name; ?>">

答案 1 :(得分:1)

我将扩展上述答案,并以简短的php方式进行操作:

value="<?= info_username_get_meta( 'your_name' ) ?? 'DEFAULT NAME'; ?>"

<?= ?>替代了<?php echo '' ?>

??替代了三元运算符,基本上,如果第一个运算符具有要使用的数据,否则它将打印第二个运算符。

答案 2 :(得分:1)

如果您使用的是php 7+,则可以执行以下操作:

<input class="mt upbb" type="text" name="your_name" id="your_name" value="<?php echo (info_username_get_meta( 'your_name' ) ?? '') ?>">

否则,您可以使用:

<input class="mt upbb" type="text" name="your_name" id="your_name" value="<?php echo (!empty($value = info_username_get_meta( 'your_name' )) ? $value : '') ?>">

答案 3 :(得分:1)

如果info_username_get_meta函数是您的函数,则可以对其进行修改以将默认值用作第二个参数,并在第一个参数没有找到任何内容时返回该值

function info_username_get_meta($username, $default)
{
    $meta = // whatever happens with $username to get meta
    return $meta ?: $default;
}

我认为这样会使演示代码更清晰一些。

如果您无权使用该功能,则可以使用此表达式

<?php echo info_username_get_meta( 'your_name' ) ?: 'default value'; ?>

?:运算符是简化的三元运算符。除非它为false,否则它将评估为左侧值,在这种情况下,它将使用右侧值。从PHP 5.3开始,此三元的缩短版本可用。

如果函数返回的“空”值为??,则空合并运算符(null)也将起作用。它专门处理空值,因此不适用于空字符串或其他虚假值。