簡體   English   中英

每次調用時更改變量值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM