2014-03-30 65 views
0

所以我有以下代碼:PHP - 如何向變量添加2個以上的參數?

<ul> 
<li> 
<p> 
<?php 
$var = rand(1,2,3,4,5,6,7,8,9,10); 
if ($var == 1){ 
print '<a href="/dir1/file1">link1</a>'; 
} 
if ($var == 2){ 
print '<a href="/dir2/file2">link2</a>'; 
} 
if ($var == 3){ 
print '<a href="/dir3/file3">link3</a>'; 
} 
if ($var == 4){ 
print '<a href="/dir4/file4">link4</a>'; 
} 
if ($var == 5){ 
print '<a href="/dir5/file5">link5</a>'; 
} 
if ($var == 6){ 
print '<a href="/dir6/file6">link6</a>'; 
} 
if ($var == 7){ 
print '<a href="/dir7/file7">link7</a>'; 
} 
if ($var == 8){ 
print '<a href="/dir8/file8">link8</a>'; 
} 
if ($var == 9){ 
print '<a href="/dir9/file9">link9</a>'; 
} 
if ($var == 10){ 
print '<a href="/dir10/file10">link10</a>'; 
} 
?> 
</p> 
</li> 
</ul> 

但它輸出這樣的錯誤:

"Warning: rand() expects exactly 2 parameters, 10 given..."

所以我不知道我怎麼會隨機的這個variablevalues,然後在p標籤只在print()

回答

1

由於您的號碼順序,你可以簡單地做

$var = rand(1,10); // that will work on range 1 - 10 


函數原型:

int rand (int $min , int $max)

1

問題不在於您可以傳遞給函數的參數有多少,而是函數期望的參數。

rand需要2個參數 - 最小值和最大值。它並不需要從中挑選出不確定數量的參數。

你只是想:

rand(1, 10) 
0
$var = rand(1,10); 

這意味着從1到10

1

你不需要在這裏的條件蘭特......

<ul> 
    <li> 
     <p> 
      <?php printf('<a href="/dir%d/file%d">link%d</a>', rand(1,10)); ?> 
     </p> 
    </li> 
</ul> 

會做..

會做..

你正在做的錯誤是.. rand()需要兩個參數..最小數量和最大數量。

旁註:如果被叫沒有可選的最小值,最大值參數RAND()返回0和getrandmax(之間)

+0

忘記href的引號 –

+0

@Hanky웃Panky,回到您的編輯。 –

0

蘭德低限值和上限值rand(0,10)之間的數的僞隨機整數。如果您有一個如 [1,14,1663,1773]這樣的數字列表,並且您希望從這些數字中獲得一個隨機數,請使用隨機函數來獲取介於0和count(數組)之間的數字 - 並且在該索引處打印元素。