簡體   English   中英

定義變量的多重條件-PHP

[英]multiple condtion in defining a variable - PHP

我有這個數組$node_actions

Array
(
    [new] => yes
    [fav] => no
    [eye] => no
    [edit] => yes
    [delete] => yes
)

有時它會切碎一些元素(例如neweye )。因此,我需要定義一個具有以下操作的變量:

$actions = $new.' '.$fav.' '.$eye.' '.$edit.' '.$delete;

這是我的方法:

if(!isset(($node_actions['new'])){
    $actions =$fav.' '.$eye.' '.$edit.' '.$delete;
}elseif(!isset(($node_actions['fav'])){
    $actions =$new.' '.$eye.' '.$edit.' '.$delete;
}elseif(!isset(($node_actions['eye'])){
    $actions =$new.' '.$fav.' '.$edit.' '.$delete;
}elseif(!isset(($node_actions['edit'])){
    $actions =$new.' '.$fav.' '.$eye.' '.$delete;
}elseif(!isset(($node_actions['delete'])){
    $actions =$new.' '.$fav.' '.$eye.' '.$edit;
}elseif(!isset(($node_actions['new']) && !isset(($node_actions['new']) ){
    $actions =$eye.' '.$edit.' '.$delete;
}else{

} //.... and so on

有沒有一種優雅的簡便方法可以做到這一點? 非常感激。

嘗試做:

$actions = "";
foreach($yourArr as $key => $val) {
  $actions .= $$key. " ";
}
$actions = trim($actions);

嘗試循環

foreach($arr as $k=>$v) {
  if(!empty($v)) {
    $actions .= $v.' ';  // yes no no yes yes 
    //$actions .= $k.' '; //new fav eye edit delete 
  }
}
echo $actions;

我更喜歡在$ new = 1中使用這種方法; $ fav = 2; $ eye = 4; $ edit = 8; $ delete = 16; 是綁定到某些特定任務的變量,它們與來自GET或POST的某些變量(在本例中為$ action)匹配

<?php

$new    = 1;
$fav    = 2;
$eye    = 4;
$edit   = 8;
$delete = 16;


$action = $fav | $eye; // OR $fav | $eye | $delete OR $new

if($action & $new) {
    echo "new";
} 

if($action & $fav) {
    echo "fav";
} 

if($action & $eye) {
    echo "eye";
} 

if($action & $edit) {
    echo "edit";
} 

if($action & $delete) {
    echo "delete";
} 

?>

希望這個能對您有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM