变量设置为“0”但PHP-If函数仍然显示它们

时间:2011-11-18 17:18:48

标签: php

周六和周日设置为“0”因为DJ不会播出。但是在下面的函数中,无论如何都会显示它们。

$djday = date( 'D' );设置为返回MonTueWedThuFriSat,{{ 1}}

Sun怎样才能显示图像(返回true)?

编辑:这是整个脚本https://github.com/gregrickaby/DJ-Rotator-for-WordPress/blob/master/dj-rotator-for-wordpress.php

0 == Sat

3 个答案:

答案 0 :(得分:1)

是boolean / int 0 == TRUE还是字符串'0' == TRUE

检查PHP type comparison table以获取有关比较这些值的更多信息。但是,我认为你必须弄错,“0”或0永远不会是一个真正的价值。

答案 1 :(得分:1)

您需要知道您存储的0是实际数字还是字符串。如果它们是字符串,则所有比较都将为假,因为两个字符串不相等而且一个不是数字字符串。

但是,如果0实际上是一个数字而不是一个字符串,那么字符串“Sat”将自动转换为数字。由于它不是数字,因此变为0,并且比较为真。

如果您想避免使用===代替==所有此类强制内容。但是,当你期望相等为真时,你必须确保所有类型都匹配。

答案 2 :(得分:0)

对于所有OR语句,只有其中一个必须命中它才能传递该IF语句。我不确定你的阵列是如何设置的,是这样的:

$djwp_images = array( '<image name>' => 
  array('monday' => "Mon",
    'tuesday' => "Tue",
...
    'sunday' => 0,
...

如果这是它的设置方式,那么if语句将无法捕获它,因为无论星期日或星期六是否也设置了星期二和星期一。不过没有更多数据,我不确定。也许最好设置['day'],但我不确定已经设置了什么。

编辑:其他正确0 ==“a”......您可能需要使用===进行类型检查和比较。