我很难弄清楚如何使用三元运算来确定内部变量的值是数字/整数还是字符串。如果是数字,它将显示$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>';
答案 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>';