2016-06-21 178 views
0

我想对输入变量$ContentPicture1Title$ContentPicture1URL进行一些逻辑控制。特别是我试图通过两条规则在单个if声明中应用多个If语句使用变量

在第一段代码中,一切正常。然后我弄糟了代码,就像你在第二个代码片段中看到的那样。

首先声明(OK):

<?php if (is_null($ContentPicture1Title)){ ?> 
    <div class="letter-badge"><img src="image1.jpg"></div> 
<?php } else { ?> 
    <div class="letter-badge"><img src="image2.jpg"></div> 
<?php }?> 

二(乱)声明:

<?php if (is_null($ContentPicture1Title) && ($ContentPicture1URL)){ ?> 
    <div class="letter-badge"><img src="image1.jpg"></div> 
<?php } else { ?> 
    <div class="letter-badge"><img src="image2.jpg"></div> 
<?php }?> 

预先感谢您的帮助。

+1

什么是不工作?你得到什么错误? – Epodax

+1

我想你的第二个是缺少is_null(...)。但你的问题不是很清楚! – TehSphinX

+0

是的我的服务器不给我正确的错误!这两个字段正在检查空值..换句话说是空的。 – Cavemanharris

回答

1

除非$ContentPicture1URLboolean变量,您需要调用一个函数,该函数可以评估为布尔值并/或将其与另一个变量/值进行比较。

例如

if(is_null($variable1) && is_null($variable2)) { 
    //Do something 
} 

if(is_null($variable1) && $variable2 == 5) { 
    //Do something 
} 
+1

PHP会将该变量转换为布尔值,并从中返回true或false。不完全确定规则是什么,但它确实如此。不需要完全是一个布尔型 – Phiter

+0

真,但变量被评估为“boolean”两种方式。 (例如'0 == false'和'1 == true')。他不太可能会想要这个,除非它是一个数字或布尔值。 –

0

正如你在official documentation阅读你需要使用第二个结构:

<?php if (is_null($ContentPicture1Title) && $ContentPicture1URL): ?> 

    <div class="letter-badge"><img src="image1.jpg"></div> 

<?php else: ?> 

    <div class="letter-badge"><img src="image2.jpg"></div> 

<?php endif; ?> 

这将运行,如果$ ContentPicture1URL是一个布尔值,否则你需要使用比较运算符(==,!=,&&,||等)或布尔函数(is_null())以正确验证条件。