2014-10-28 2 views
0

Я объявил МассивКак использовать переменные массива как определенные переменные в PHP?

$CLISTS=array("Add_Product"=>"products.php","Payment_Type"=>"payment.php","Shipping"=>"shipping.php"); 

и я определил переменные

<?php 
define("Add_Product",TRUE); 
define("Payment_Type",FALSE); 
define("Shipping",FALSE); 


foreach($CLISTS as $lists=>$page) 
{ 
if($lists==TRUE) 
{ 
?> 
<div class='alert' style="text-decoration:line-through;"><?php echo str_replace("_"," ",$lists);?></div> 
<?php } 
else 
{ 
?> 
<div class='alert'><a href="<?php echo $page;?>"><?php echo str_replace("_"," ",$lists);?></a></div> 

<?php } 
} 
?> 

Его не работает. Все div - удары. Что я ошибся?

ответ

1

DEFINE не делать то, что вы думаете, что он делает. Define создает named constant.

И вы не можете изменить переменные массива.

Просто сделать:

$CLISTS['Add_Product'] = true; 
$CLISTS['Payment_Type'] = false; 
$CLISTS['Shipping'] = false; 

Чтобы изменить переменные массива.

0

Вы можете написать логику как

foreach($CLISTS as $lists=>$page) 
{ 
    if($lists == 'Add_Product') 
    { 
?> 

Или даже вы можете использовать === как

foreach($CLISTS as $lists=>$page) 
{ 
    if($lists === TRUE) 
    { 
?> 
Смежные вопросы