PHP-代码之间切换困难

PHP-代码之间切换困难,php,switching,Php,Switching,我在一个比这个大得多的代码中有点尴尬,但大致上就是这样 <?php $other = 'white'; $array = array('red', 'blue', 'red', 'red', 'red'); foreach($array[1] as $match) //OR $match = $other; { //Core Area if($match == 'red') { echo 'RED!'; } if($match == 'blue') { ech

我在一个比这个大得多的代码中有点尴尬,但大致上就是这样

<?php
$other = 'white';

$array = array('red', 'blue', 'red', 'red',  'red');

foreach($array[1] as $match) //OR $match = $other;
{
    //Core Area
    if($match == 'red') { echo 'RED!'; }
    if($match == 'blue') { echo 'BLUE!'; }
    if($match == 'white') { echo 'white!'; }
}
?>

现在的情况是,
$other
如果没有
foreach
的阻挡,就无法进入核心区域。另一种选择是克隆——通过复制粘贴——到另一个地方。。。这不太好用。。。我曾尝试将面积放在函数中,但如果没有许多全局值,这似乎不是一个可行的选择。有没有办法在
foreach
=
之间切换

$array[] = $other;
现在,
$other
在数组中,因此它将出现在循环中比较的内容列表中

你为什么要这样做,或者你真正想问的是我的问题。

<?php
$other = 'white';

$array = array('red', 'blue', 'red', 'red',  'red');

array_push($array, $other);    
foreach($array as $match) //OR $match = $other;
{ 
    //Core Area
  if($match == 'red') { echo 'RED!'; }
  if($match == 'blue') { echo 'BLUE!'; }
  if($match == 'white') { echo 'white!'; }
}

array_pop($array);
或者:

<?php
$other = 'white';

$array = array('red', 'blue', 'red', 'red',  'red');

foreach($array as $match) //OR $match = $other;
{ 
    //Core Area
    custom_match($match);
}

custom_match($other);

function custom_match($color) {
  if($match == 'red') { echo 'RED!'; }
  if($match == 'blue') { echo 'BLUE!'; }
  if($match == 'white') { echo 'white!'; }
}
?>


您的PHP代码中有许多打字错误和错误,这使得您很难理解这个问题。Exmaples:数组周围没有引号,if()语句使用赋值
=
,而不是相等性测试
=
。而且,它被分成了几个块,因此很难阅读。请先清理示例代码,这样会更容易回答!谢谢
if($match='red')
:所有这些都必须是
=
,而不是
=
。数组值应该用引号括起来,除非它们是常量(在这种情况下,你应该更好地命名它们,比如大写或其他)。您希望查看我猜测的数组中的每个元素,因此应该将
$array作为$match
编写,而不是
$array[0]作为$match
。您的比较应该使用<代码> >= >或<代码>===/代码>不<代码>=/COD>所有三个if语句,并且在一个循环中有一个随机的<代码> > >代码>,我非常怀疑您是否想要。这只是一个注释。我不知道你的问题是什么,所以我恐怕无法回答。请在发帖前仔细阅读PHP。你的PHP代码被破坏了,你的理解也被破坏了。我最好的猜测是,他是从BASIC、COBOL或某种形式的汇编程序直接进入PHP的,并且在这一过程中经历了一些文化冲击。这一定是其中一个涟漪。嗯,这看起来可能有用。。
foreach($array[1]=$other作为$match)
@ZJR-Nah,我怀疑我不仅仅在理解或语法方面很在行。@够了,不,这行代码将变量
$other
中的任何内容添加到数组
$array
。所以它现在将包含
红、蓝、红、红、红、白
。。。因此,稍后当您循环遍历
$array
中的所有值时,白色将是这些值之一。您不希望按照您建议的方式更改循环。正如其他人暗示的那样,其中一本“24小时内学习PHP”类型的书可能是个好主意——你只需要一本语法/结构的入门书,感觉就像是从另一类语言的角度来处理这个问题。
foreach($array[1]As$match)
似乎是一个愚蠢的循环,没有?当然有:)我只是抄了他原来的帖子。。。现在更正,谢谢