PHP 的简写是什么:如果 var 存在则打印 var

发布于 2024-11-04 04:27:38 字数 311 浏览 2 评论 0原文

我们以前都遇到过这种情况,需要在输入字段中打印变量,但不确定变量是否已设置,就像这样。基本上这是为了避免 e_warning。

<input value='<?php if(isset($var)){print($var);}; ?>'>

我怎样才能写得更短呢?我可以引入这样的新函数:

<input value='<?php printvar('myvar'); ?>'>

但是我没有成功编写 printvar() 函数。

We've all encountered it before, needing to print a variable in an input field but not knowing for sure whether the var is set, like this. Basically this is to avoid an e_warning.

<input value='<?php if(isset($var)){print($var);}; ?>'>

How can I write this shorter? I'm okay introducing a new function like this:

<input value='<?php printvar('myvar'); ?>'>

But I don't succeed in writing the printvar() function.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

会傲 2024-11-11 04:27:39

另一种选择:

<input value="<?php echo isset($var) ? $var : '' ?>">

Another option:

<input value="<?php echo isset($var) ? $var : '' ?>">
白日梦 2024-11-11 04:27:39

我能想到的最短答案是

更多详细信息请参见 php 手册< /a>.

if 语句的一个简单替代方案(几乎类似于三元运算符)是使用 AND。考虑以下因素:

';

// This is an alternative
isset( $value ) AND print( $value );
?>

由于某种原因,这不适用于 echo()。我发现这非常有用!

The shortest answer I can come up with is <?php isset($var) AND print($var); ?>

Further details are here on php manual.

A simple alternative to an if statement, which is almost like a ternary operator, is the use of AND. Consider the following:

';

// This is an alternative
isset( $value ) AND print( $value );
?>

This does not work with echo() for some reason. I find this extremely useful!

月依秋水 2024-11-11 04:27:39

最好使用合适的模板引擎 - https://stackoverflow.com/q/3694801/298479 提到了两个不错的模板引擎。

无论如何,这就是你的函数 - 只有当 var 存在于全局范围内时它才会起作用:

function printvar($name) {
    if(isset($GLOBALS[$name])) echo $GLOBALS[$name];
}

Better use a proper template engine - https://stackoverflow.com/q/3694801/298479 mentions two nice ones.

Here's your function anyway - it will only work if the var exists in the global scope:

function printvar($name) {
    if(isset($GLOBALS[$name])) echo $GLOBALS[$name];
}
娇纵 2024-11-11 04:27:39
<input value='<?php @print($var); ?>'>
<input value='<?php @print($var); ?>'>
时光暖心i 2024-11-11 04:27:39

你可以做 .

You could do <?php echo @$var; ?>. Or <?= @$var ?>.

蘑菇王子 2024-11-11 04:27:39

目前 PHP 中没有任何东西可以做到这一点,而且您也无法真正在 PHP 中编写函数来做到这一点。您可以执行以下操作来实现您的目标,但如果变量不存在,它也会产生定义变量的副作用:

function printvar(&$variable)
{
    if (isset($variable)) {
        echo $variable;
    }
}

这将允许您执行 printvar($foo)printvar($array['foo']['bar']).然而,在我看来,最好的方法是每次都使用 isset。我知道这很烦人,但没有任何好的方法可以解决。不建议使用@

有关详细信息,请参阅 https://wiki.php.net/rfc/ifsetor

There's currently nothing in PHP that can do this, and you can't really write a function in PHP to do it either. You could do the following to achieve your goal, but it also has the side effect of defining the variable if it doesn't exist:

function printvar(&$variable)
{
    if (isset($variable)) {
        echo $variable;
    }
}

This will allow you to do printvar($foo) or printvar($array['foo']['bar']). However, the best way to do it IMO is to use isset every time. I know it's annoying but there's not any good ways around it. Using @ isn't recommended.

For more information, see https://wiki.php.net/rfc/ifsetor.

断舍离 2024-11-11 04:27:39

这对我有用:

<?= isset($my_variable) ? $my_variable : $my_variable="Some Value"; ?>

This worked for me:

<?= isset($my_variable) ? $my_variable : $my_variable="Some Value"; ?>
回忆凄美了谁 2024-11-11 04:27:39
<input value='<?php printvar(&$myvar); ?>' />

function printvar(&$val) {
    if (isset($val)) echo $val;
}
<input value='<?php printvar(&$myvar); ?>' />

function printvar(&$val) {
    if (isset($val)) echo $val;
}
伴梦长久 2024-11-11 04:27:39

您还可以使用以下内容:

<input type="text" value="<?php echo @$var; ?>">//means if(isset($var)){ echo $var; }

You could also use the following:

<input type="text" value="<?php echo @$var; ?>">//means if(isset($var)){ echo $var; }
活雷疯 2024-11-11 04:27:39
$var;
(isset($var)) ? (print $var) : '';

$var = 'hello var';
(isset($var)) ? (print $var) : '';
$var;
(isset($var)) ? (print $var) : '';

$var = 'hello var';
(isset($var)) ? (print $var) : '';
·深蓝 2024-11-11 04:27:38

对于 PHP >= 7.0:

从 PHP 7 开始,您可以使用 空合并运算符

$user = $_GET['user'] ?? 'guest';

或者在您的用法中:

<?= $myVar ?? '' ?>

对于 PHP >= 5.x:

我的建议是创建一个 issetor 函数:

function issetor(&$var, $default = null) {
    return isset($var) ? $var : $default;
}

这需要一个变量作为参数,如果存在则返回它,如果不存在则返回默认值。现在你可以这样做:

echo issetor($myVar);

但也可以在其他情况下使用它:

$user = issetor($_GET['user'], 'guest');

For PHP >= 7.0:

As of PHP 7 you can use the null-coalesce operator:

$user = $_GET['user'] ?? 'guest';

Or in your usage:

<?= $myVar ?? '' ?>

For PHP >= 5.x:

My recommendation would be to create a issetor function:

function issetor(&$var, $default = null) {
    return isset($var) ? $var : $default;
}

This takes a variable as argument and returns it, if it exists, or a default value, if it doesn't. Now you can do:

echo issetor($myVar);

But also use it in other cases:

$user = issetor($_GET['user'], 'guest');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文