2012-12-01 83 views
1

如何,我可以使用下面的代碼在開關情況:如何使用開關盒?

if($_GET['test']=='') { $test='demo';} else { $test=$_GET['test'];} 
if($_GET['test1']=='') { $test1='demo';} else { $test1=$_GET['test1'];} 
if($_GET['test2']=='') { $test2='demo';} else { $test2=$_GET['test2'];} 
if($_GET['test3']=='') { $test3='demo';} else { $test3=$_GET['test3'];} 
if($_GET['test4']=='') { $test4='demo';} else { $test4=$_GET['test4'];} 
if($_GET['test5']=='') { $test5='demo';} else { $test5=$_GET['test5'];} 

Thanx提前

+3

我認爲有人需要了解[for loops](http://php.net/for) –

+0

@Kolink這是測試script.variables在原始腳本中是不同的,所以我不能使用for循環。 –

回答

5

爲什麼使用switch這裏?你可以只用一個簡單的foreach和使用variable variables創建變量:或者

foreach (array('test', 'test1', 'test2', 'test3', 'test4', 'test5') as $var) { 
    $$var = isset($_GET[$var]) ? $_GET[$var] : ''; 
} 

,看看filter

+0

非常好....... –

+0

thanx爲你的答案.. –

+0

如果你只是測試一個多維aray它會更容易。 – 2012-12-01 06:42:03

1

你總是可以使用三元運算符(http://www.tuxradar.com/practicalphp/3/12/4

$test = $_GET['test'] == '' ? 'demo' : $_GET['test'] ; 
$test1 = $_GET['test1'] == '' ? 'demo' : $_GET['test1'] ; 
.. etc .. 

雖然剛剛迭代通過重複變量可以更容易地完成一個循環。

+0

thanx for ur answer .. –