como adicionar 2 códigos de atributos na condição if
-
28-09-2020 - |
Pergunta
estou usando este código em atributos.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>
na 2ª linha do código você pode ver: if ($_data['code'] == 'mobile_design')
, aqui "mobile_design" é um atributo, quero adicionar mais um atributo aqui, então estou usando o seguinte código:
<?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>
mas não está funcionando para mim
Solução
claro que não funciona...
($_data['code'] == 'mobile_design') && ($_data['code'] == 'gendernew')
sempre será avaliado como falso.
Se $_data['code'] == 'mobile_design'
então nunca será gendernew
.
Também se $_data['code'] == 'gendernew'
então nunca será mobile_design
.
então sua expressão é avaliada como um destes casos:
true && false
false && true
false && false
todos os itens acima são avaliados como false
.isso é conjunção lógica 101.
Se você quiser que seu código seja executado para ambos mobile_design
e gendernew
casos substituir &&
com ||
.
||
é Disjunção Lógica
true || false
avalia para true
false || true
avalia para true
false || false
avalia para false