【问题标题】:Change variable value each time its called每次调用时更改变量值
【发布时间】:2016-01-27 13:40:00
【问题描述】:

我使用了一个变量,该变量是通过从整个站点的数组中选择一个单词(使用时间作为“随机”索引)来设置的。 一切都很好。

但是 - 在某些页面上,该变量会显示多次,并且每次都显示相同的单词。

因为我已经对变量进行了硬编码(并在页面加载时随机生成),所以将变量更改为返回单词的函数将是一件非常头疼的事情。 (首先没有这样做是有原因的 - 没有考虑到重复。)

问题来了: 有没有办法让变量每次调用时都改变它的值?

我在想一些类似的事情

<?php
$var = function returnNewWord(){
      /* generate random word here */
      return $ranWord;
}
?>

这不起作用 - 但它可能会让你明白我的意思。

有人知道这怎么可能吗?感谢您的帮助。

【问题讨论】:

  • 你的意思是“变量每次调用时都会改变它的值”?您不能调用 vars,因为它不是函数或闭包。
  • 每次我print $var。调用是什么意思?
  • 所以应该是:调用闭包...
  • 您实际上想解决什么问题?似乎有更好的方法。
  • 目标是创建一个变量,每次引用时其值都会发生变化,同时仍将其作为变量实现。

标签: php function variables dynamic random


【解决方案1】:

如果单词的数组是有限的,那么您很可能会在多个函数调用中收到相同的输出。

如果你想得到完全随机的变量:

 <?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;
    ?>

【讨论】:

  • 这不会在每次调用$var 时改变它的值。这只是将$var 的值设置为$randomString - 并在每次调用$var 时显示$randomString。这基本上是我已经拥有的。
【解决方案2】:

应该可以的。

<?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.ini 文件。我也是这么想的,但是没用。
  • 我试试看,不好意思,我是直接写在这里的
【解决方案3】:

真正可行的唯一方法是将其转换为类的实例:

<?php

class RandomThingy {

   function __toString() {

      $ranWord = mt_rand(1, 1000);
      /* generate random word here */
      return (string)$ranWord;

   }

}

$var = new RandomThingy();

print $var;
print $var;

?>

【讨论】:

  • 你就是那个男人!如果可以的话,我会给你更多的支持。完全按照需要工作。
猜你喜欢
  • 2015-01-01
  • 1970-01-01
  • 2021-03-18
  • 1970-01-01
  • 1970-01-01
  • 2021-02-06
  • 2021-08-09
  • 2019-01-24
  • 2016-04-06
相关资源
最近更新 更多