我有一个if
语句引发了syntax error, unexpected T_VARIABLE
错误,我不明白为什么。
代码:
<?php if($contentTop || $contentLeft || $contentCenter || $contentRight): ?>
<div>a bunch of html</div>
<?php endif; ?>
该变量包含一个空字符串或一堆html。
我尝试将||
更改为or
但似乎没有改变任何内容。也没有用大括号打开和关闭if
语句。它似乎只在我在声明中只有一个变量时起作用。我也尝试使用!empty($contentTop)
来检查变量。
服务器正在运行PHP版5.3.10-1ubuntu3.26
但是据我所知,这不应该改变if
语句的任何内容
编辑:
根据完整标记的要求:
<?php
$contentTop = get_field('section2new_content');
$contentLeft = get_field('section2new_left');
$contentCenter = get_field('section2new_center');
$contentRight = get_field('section2new_right');
if( $contentTop || $contentLeft || $contentCenter || $contentRight ): ?>
<div class="bbh-inner-section teaser-3-col" id="section2temp">
<?php if($contentTop): ?>
<div class="grid-container top">
<div class="row">
<div class="col-sm-12">
<?php echo $contentTop; ?>
</div>
</div>
</div>
<?php endif; ?>
<?php if($contentLeft || $contentRight || $contentCenter): ?>
<div class="grid-container bottom">
<div class="row">
<div class="col-sm-4 left">
<?php echo $contentLeft; ?>
</div>
<div class="col-sm-4 center">
<?php echo $contentCenter; ?>
</div>
<div class="col-sm-4 right">
<?php echo $contentRight; ?>
</div>
</div>
</div>
<?php endif; ?>
</div>
<?php endif; ?>
当我注意到自己有进一步向下的if / ||
声明时,这似乎工作正常。这也不是我错误地插入了错误类型的空间或者说,我多次手动重写代码
答案 0 :(得分:1)
我试过@Poiz的答案。有点怀疑我再次尝试了我自己的原始代码,现在也有效。人为错误再一次。也许这是一个空格或标签的非法版本。
答案 1 :(得分:0)
你愿意尝试一些有点奇怪的东西吗?无论如何,除了我们将if
语句转换为三元操作之外,它与您所做的基本相同。这是因为就像你说的那样;你已经尝试了if
的几乎所有组合而没有成功,除非只提供了一个条件....这里的想法只是简单地将执行主要比较的Line压缩为单个简单的布尔值,然后可以在后续if
中使用。也许这对你有用,因为你的Magical if
仅适用于你只有一个条件进行测试的情况......
<?php $state = ($contentTop || $contentLeft || $contentCenter || $contentRight) ? true : false; ?>
<?php if($state): ?>
<div>a bunch of html</div>
<?php endif; ?>