cómo agregar 2 códigos de atributo en condición if
-
28-09-2020 - |
Pregunta
Estoy usando este código en 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>
en la segunda línea del código puedes ver: if ($_data['code'] == 'mobile_design')
, aquí "mobile_design" es un atributo, quiero agregar un atributo más aquí, así que estoy usando el siguiente 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>
pero no me funciona
Solución
claro que no funciona...
($_data['code'] == 'mobile_design') && ($_data['code'] == 'gendernew')
siempre se evaluará como falso.
Si $_data['code'] == 'mobile_design'
entonces nunca lo será gendernew
.
También si $_data['code'] == 'gendernew'
entonces nunca lo será mobile_design
.
entonces su expresión se evalúa en uno de estos casos:
true && false
false && true
false && false
todo lo anterior se evalúa como false
.es conjunción lógica 101.
Si desea que su código se ejecute para ambos mobile_design
y gendernew
los casos reemplazan &&
con ||
.
||
es Disyunción lógica
true || false
evalúa a true
false || true
evalúa a true
false || false
evalúa a false