[英]Change variable value each time its called
我使用了通過在整個站點的數組中選擇一個單詞(使用時間作為“隨機”索引)來設置的變量。 一切正常。
但是-在某些頁面上,變量會多次顯示,並且每次顯示相同的單詞。
因為我已經對變量進行了硬編碼(並在頁面加載時隨機生成了該變量),所以將變量更改為一個返回單詞的函數將非常麻煩。 (之所以沒有這樣做,是出於一個原因-沒有考慮到重復。)
這里的問題是:有沒有一種方法可以使變量在每次調用時更改其值?
我在想一些類似的事情
<?php
$var = function returnNewWord(){
/* generate random word here */
return $ranWord;
}
?>
那是行不通的-但這可能會讓您了解我的意思。
有人知道這怎么可能嗎? 謝謝您的幫助。
真正可行的唯一方法是,將其轉換為類的實例:
<?php
class RandomThingy {
function __toString() {
$ranWord = mt_rand(1, 1000);
/* generate random word here */
return (string)$ranWord;
}
}
$var = new RandomThingy();
print $var;
print $var;
?>
那應該做。
<?php
$array = array("foo", "bar", "hello", "world");
$var = function returnNewWord(){
$ranIndex = rand(0, count($array));
$ranWord = $array[$ranIndex];
array_splice($array, $ranIndex, 1);
return $ranWord;
}
?>
如果單詞的數組有限,則很有可能會收到多個函數調用的相同輸出。
如果要獲取完全隨機變量:
<?php
function returnNewWord() {
$length = 10;
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
$var = returnNewWord();
echo $var;
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.