給出以下3個變量,每個以數字結尾。我想通過使用mt_rand(1,3)
在$fruit
年底echo
了他們的一個隨機,所以PHP隨機輸出的3PHP - 使用隨機數回顯變量?
<?php
$fruit1 = 'apple';
$fruit2 = 'banana';
$fruit3 = 'orange';
echo $fruit.mt_rand(1,3);
我可以用一個數組做很容易,但我想知道如何獲得上述工作。任何想法?
給出以下3個變量,每個以數字結尾。我想通過使用mt_rand(1,3)
在$fruit
年底echo
了他們的一個隨機,所以PHP隨機輸出的3PHP - 使用隨機數回顯變量?
<?php
$fruit1 = 'apple';
$fruit2 = 'banana';
$fruit3 = 'orange';
echo $fruit.mt_rand(1,3);
我可以用一個數組做很容易,但我想知道如何獲得上述工作。任何想法?
您可以使用雙美元符號從字符串變量得到:
$fruit1 = 'apple';
$fruit2 = 'banana';
$fruit3 = 'orange';
$variable = 'fruit'.mt_rand(1,3);
echo $$variable;
但更好是使用陣列:
$fruits = array();
$fruits[1] = 'apple';
$fruits[2] = 'banana';
$fruits[3] = 'orange';
echo $fruits[mt_rand(1,3)];
您可以創建變量名稱作爲字符串。你可以做到這一點作爲一個線,但我打破它,所以你可以看到它更容易...
$var = "fruit";
$var.= rand(1,3);
echo $$var;
下面是使用array_rand的OOP方法():
類別:
class Test {
public $fruits;
public $fruit1;
public $fruit2;
public $fruit3;
public function __set($property, $value)
{
if(property_exists($this, $property)) {
$this->$property = $value;
}
}
public function pickOne()
{
$this->fruits = [];
foreach($this as $key => $value) {
if(!empty($value))
$this->fruits[$key] = $value;
}
return array_rand($this->fruits, 1);
}
}
然後初始化它,設置的屬性值和回聲結果:
$pickOne = new Test;
$pickOne->fruit1 = 'apple';
$pickOne->fruit2 = 'banana';
$pickOne->fruit3 = 'orange';
echo $pickOne->pickOne();
謝謝你,它的工作原理是最接近我的語法(第一部分)。將在幾分鐘內接受答案,等待SO時間限制通過:) – Wonka
如果您使用的數組有[array_rand](http://php.net/manual/function.array-rand.php)函數在PHP中。 –