可以在 php 中对条件语句进行赋值吗?

Posted

技术标签:

【中文标题】可以在 php 中对条件语句进行赋值吗?【英文标题】:Can one make an assignment on conditional statement in php? 【发布时间】:2011-01-12 20:43:58 【问题描述】:

你能像这样在 php 中对条件语句进行赋值吗:

if(siteName_err = isValid("sitename", $_POST['sitename'], false))

    $siteName = $_POST['sitename'];

【问题讨论】:

你们在 *** 上放手!感谢您的周转。太棒了! @JAL,好吧,在 Python 中,赋值是语句,而不是带有值的表达式。但您仍然可以使用该语言完成工作。 【参考方案1】:

是的。

我认为最常见的使用场景是在使用 mysql 时。例如:

$result = mysql_query("SELECT username FROM user");
while ($user = mysql_fetch_assoc($result)) 
  echo $user['username'] . "\n";

这是有效的,因为$user 是分配的结果。意思是,存储在您的作业中的任何内容都将用作条件。换句话说,

var_dump($i = 5);

// is equivalent to

$i = 5;
var_dump($i);

显然,两者都会打印int(5)

【讨论】:

【参考方案2】:

是的。

老实说,你为什么不试试呢?不允许您执行此类操作的语言通常会产生编译器/解析器错误。

PHP 的大部分基本句法元素都来自 C,其中包括每个赋值都返回一个值。因此这是有效的。

【讨论】:

但是当你学习的时候,即使事情看起来确实有效,你也不能保证它是正确的或正确的,或者不会导致未来的问题。对问题有一个清晰简洁的答案当然会很有用。【参考方案3】:

是的,你可以这样做。

如果您之所以询问是因为您尝试了它并遇到了一个疯狂的错误,请尝试通过在 $ 前面加上一个美元符号来使 siteName_err 成为一个有效的变量名。

【讨论】:

【参考方案4】:

是的,当然,你也可以对 while 结构做同样的事情

【讨论】:

以上是关于可以在 php 中对条件语句进行赋值吗?的主要内容,如果未能解决你的问题,请参考以下文章

if 语句中的赋值语句如何作为条件?

条件循环和其他语句

如何优化Oracle在where条件中用了自定义函数的SQL语句

c语言中if语句条件为赋值语句

C语言中的条件赋值语句和if——else语句执行效率比较,哪一个效率高些,坐等高手解惑

sql语句中where后边的哪些条件会使索引失效 -- SQL语句优化