if 조건에 2개의 속성 코드를 추가하는 방법
-
28-09-2020 - |
문제
나는 attribute.phtml에서 이 코드를 사용하고 있습니다:
<?php
if ($_data['code'] == 'mobile_design')
{ ?>
<td class="data">
<?php
$_ageValues = $_product->getAttributeText($_data['code']);
$count = 1;
?>
<?php if(is_array($_ageValues)): foreach($_ageValues as $_ageValue): ?>
<?php if($count > 1) { echo ","; } ?>
<?php echo $_ageValue; ?>
<?php $count++; ?>
<?php endforeach;
else: echo $_product->getAttributeText($_data['code']);
endif; ?>
</td>
코드의 두 번째 줄에서 다음을 볼 수 있습니다. if ($_data['code'] == 'mobile_design')
, 여기서 "mobile_design"은 속성입니다. 여기에 속성을 하나 더 추가하고 싶으므로 다음 코드를 사용하고 있습니다.
<?php
if (($_data['code'] == 'mobile_design') || ($_data['code'] == 'gendernew')) // please check this line
{ ?>
<td class="data">
<?php
$_ageValues = $_product->getAttributeText($_data['code']);
$count = 1;
?>
<?php if(is_array($_ageValues)): foreach($_ageValues as $_ageValue): ?>
<?php if($count > 1) { echo ","; } ?>
<?php echo $_ageValue; ?>
<?php $count++; ?>
<?php endforeach;
else: echo $_product->getAttributeText($_data['code']);
endif; ?>
</td>
하지만 그건 나한테는 효과가 없어
해결책
물론 작동하지 않습니다 ...
($_data['code'] == 'mobile_design') && ($_data['code'] == 'gendernew')
항상 false로 평가됩니다.
만약에 $_data['code'] == 'mobile_design'
그럼 절대 안 돼 gendernew
.
또한 만약에 $_data['code'] == 'gendernew'
그럼 절대 안 돼 mobile_design
.
따라서 귀하의 표현식은 다음 경우 중 하나로 평가됩니다.
true && false
false && true
false && false
위의 모든 값은 다음과 같이 평가됩니다. false
.그것은 논리접속사 101.
두 가지 모두에 대해 코드를 실행하려면 mobile_design
그리고 gendernew
케이스 교체 &&
~와 함께 ||
.
||
~이다 논리적 분리
true || false
평가하다 true
false || true
평가하다 true
false || false
평가하다 false
제휴하지 않습니다 magento.stackexchange