【问题标题】:Forgetting double equal-sign in php if-statement在php if语句中忘记双等号
【发布时间】:2015-03-03 19:33:12
【问题描述】:

在编码时,我有时会在 if 语句中写一个 = 而不是 == 的错误。所以可以说我有这个:

<?php
$name = 'piet';
if($name == 'jan'){
    print 'hello jan';
}

?>

我犯了一个错误,而是写了这个:

<?php
$name = 'piet';
if($name = 'jan'){
    print 'hello jan';
}

?>

这当然不会抛出错误,因为它是有效的 php 代码。但是,我从不使用这种速记符号,所以如果我输入错误,它会破坏我的代码逻辑,而不会告诉我原因。有解决方案吗?我正在使用 aptana,它是一个基于 eclipse 的编辑器。有什么方法可以将我自己的自定义错误添加到基于例如正则表达式的编辑器(或 php)中?或者有什么其他方法可以在我犯这个错误时提醒我?

【问题讨论】:

    标签: php eclipse if-statement aptana


    【解决方案1】:

    只需将顺序更改为:

    if('jan' == $name) {
    

    这在Yoda conditions 下是已知的:

    所以如果你现在犯了错误:

    if('jan' = $name) {
    

    这会给你一个错误!

    【讨论】:

    • 正确答案是这样。我会推荐if(0 === strcmp('jan', $name) {。正如strcmp 中所述,在将字符串与数字或十六进制进行比较时,您可能会遇到一些有趣的行为。还有谁不喜欢严格的代码?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-13
    • 2020-08-22
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    相关资源
    最近更新 更多