在变量编码中使用is_numeric来检查变量,如果它是字符串或数字

时间:2018-02-09 08:28:47

标签: php ternary-operator

我很难弄清楚如何使用三元运算来确定内部变量的值是数字/整数还是字符串。如果是数字,它将显示$score里面的文字或单词。如果是text or string,它只会显示该值。有一个

$score = 42

$variables['page']['sidebar_first']['block_scored']['#markup'] = '<div id="entry-score"><h3><span>' . (is_numeric($score)) . '</span></h3></div>';

3 个答案:

答案 0 :(得分:3)

尝试做三元:

(is_numeric($score) ? $score : null)

答案 1 :(得分:2)

目前,您显示的是true,如果<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="deptmessage"> </div> <form id="USRboxrtv"> <button type="submit" id="retrieve" class="btn btn-primary">Retrieve</button> </form>是数字,则显示为false,如果不存在且未使用三元运算符。

三元运算符使用起来非常简单:

$score

现在$result = (is_numeric($score)) ? 'number' : 'not a number'; 将包含单词'number'(如果它是1)或'not a number'(如果它是一个字符串)或者只是一个数字以外的其他内容。

我不完全理解你的问题,所以请更新你想要完成的事情。

答案 2 :(得分:-1)

<?php
function do_output($score)
{
    $format = ['%s', 'Your score is: %d'];
    printf($format[is_numeric($score)], $score);
}

do_output(42);
do_output('Some text that is not a number.');

输出:

Your score is: 42Some text that is not a number.

字符串赋值:

$output = sprintf(['<p>%s</p>', 'Your score is: <b>%d</b>'][is_numeric($score)], $score);

正如你所看到的,这里不需要三元组。 is_numeric用于确定包含s / printf的输出格式的数组的索引。

或者使用三元:

$output = is_numeric($score)
    ? 'Your score is: <b>' . $score . '</b>'
    : '<p>' . $score . '</p>';