相关疑难解决方法(0)

为什么PHP认为0等于字符串?

我有以下代码:

$item['price'] = 0;
/*code to get item information goes in here*/
if($item['price'] == 'e') {
    $item['price'] = -1;
}
Run Code Online (Sandbox Code Playgroud)

它旨在将项目价格初始化为0,然后获取有关它的信息.如果价格被告知为'e',则意味着交换而不是卖出,其用负值表示,因为它将被存储在需要数值的数据库中.

还有可能将价格保留为0,因为该项目是奖金或因为价格将在稍后设定.

但是,总是在没有设置价格时,它使初始值为0,上面指出的if循环评估为真,价格设置为-1.也就是说,它认为0等于'e'.

怎么解释这个?

编辑:当价格提供为0(初始化后)时,行为不稳定:有时if评估为true,有时评估为false.

php string numbers evaluate

103
推荐指数
7
解决办法
3万
查看次数

为什么"someString"== 0在PHP中评估为true

truth在PHP中有点困惑.

我的理解是0计算为false,非空字符串(除非字符串为"0")计算为true.

这是我所期望的:

var_dump((bool) 0);              // prints "boolean false"
var_dump((bool) 'someString');   // prints "boolean true"
Run Code Online (Sandbox Code Playgroud)

但后来我对以下结果感到惊讶:

var_dump((0=='someString'));     // prints "boolean true"
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么0=='someString'评价为真?

php

2
推荐指数
1
解决办法
689
查看次数

PHP:与"=="运算符混淆

有人可以向我解释为什么这些代码返回"TRUE".我知道我应该使用"==="而不是"=="但我会跑到这个代码并想知道为什么它会返回true.提前致谢.

<?php
    $s = "final";
    $i = 0;
    if($s == $i){
        echo "TRUE";
    }else{
        echo "FALSE";
    }
Run Code Online (Sandbox Code Playgroud)

php

0
推荐指数
1
解决办法
111
查看次数

为什么零(0)和字符串在PHP中是相同的?

<?php

// your code goes here
if (0 == "asdf")
    echo "same";
else
    echo "not same";
Run Code Online (Sandbox Code Playgroud)

你好,为什么这段代码打印"相同",而不是"不相同"?我对这个奇怪的结果有点困惑.这是一个错误吗?

执行结果:请参阅http://ideone.com/wfWRlq

php

0
推荐指数
1
解决办法
54
查看次数

标签 统计

php ×4

evaluate ×1

numbers ×1

string ×1