PHP-我可以将这个if-else转换成一个更干净的代码段,比如数组和循环吗?

PHP-我可以将这个if-else转换成一个更干净的代码段,比如数组和循环吗?,php,arrays,loops,if-statement,Php,Arrays,Loops,If Statement,就这样做吧 <? /////////////////////// /////////////////////// $OriginalUrlToDisplay=strtok($_SERVER["REQUEST_URI"],'?'); $buttonTypeForColours="radio"; /////////////////////// /////////////////////// ?> <form> <input type="<?=$buttonType

就这样做吧

<?
///////////////////////
///////////////////////
$OriginalUrlToDisplay=strtok($_SERVER["REQUEST_URI"],'?');
$buttonTypeForColours="radio";
///////////////////////
///////////////////////
?>
<form>
<input type="<?=$buttonTypeForColours ?>" name="colourChoice[]" <? if($_GET["filter"]=="White"){?> onclick="location.href='<?=$OriginalUrlToDisplay?>'" checked="checked" <? } else {?> onclick="location.href='?filter=White'"<? } ?>/> <img src="http://www.gc-cdn.com/mobile/white.png" /> White<br />
<input type="<?=$buttonTypeForColours ?>" name="colourChoice[]" <? if($_GET["filter"]=="Black"){?> onclick="location.href='<?=$OriginalUrlToDisplay?>'" checked="checked" <? } else {?> onclick="location.href='?filter=Black'"<? } ?>/> <img src="http://www.gc-cdn.com/mobile/black.png" /> Black<br />
</form>


如何在多行中中断并使用PHP的替代sintax?比如:

<form>
<?php
$colours = array('black', 'white', 'yellow', 'green', '...');
foreach($colours as $colour):
    $url = $_GET['filter'] == $colour || $_GET['filter'] == ucfirst($colour) ? $OriginalUrlToDisplay : '?filter='. ucfirst($colour);
?>
    <input type="<?php echo $buttonTypeForColours; ?>" name="colourChoice[]" onclick="location.href='<?php echo $url; ?>'" checked="checked" /> <img src="http://www.gc-cdn.com/mobile/white.png" /> White<br />
<?php 
endforeach;
?>
</form>

您可以像这样轻松地循环它:

<?php if(...): ?>
    <sometag></sometag>
<?php endif; ?>


您尝试过函数吗?同意^,只需使用一个简单的循环来生成HTML。对于当前稳定的PHP 5.4和未来版本,它(
我甚至不知道这意味着什么。-1在编写外观更好的视图时,对我非常有帮助。我只是认为它也可以帮助您。
<?php

$colors = array("White", "Black", "Green", "...");
foreach ($colors as $color) {
    echo '<input type="', $buttonTypeForColours, '" name="colourChoice[]"',
         $_GET["filter"] == $color
             ? 'onclick="location.href=\'?\'" checked="checked"' 
             : 'onclick="location.href=\'?filter=' . $color . '\'"',
         ' /><img src="http://www.gc-cdn.com/mobile/', strtolower($color), '.png" /> ', $color, '<br />'
         ;
}

?>
$_GET["filter"] == $color
strcasecmp($_GET["filter"], $color) === 0