【问题标题】:How to random sign like that?如何随机签名?
【发布时间】:2014-08-11 11:20:25
【问题描述】:

如何随机签名?

echo Rand(|,★,●,-);

当我测试这段代码时,它会显示错误

Parse error: syntax error, unexpected '|', expecting ')' 

【问题讨论】:

  • 至少你需要一些引号......
  • 将您的随机符号放入一个数组中,随机播放,然后显示条目 0
  • @Alnitak 错了,即使加了引号,Rand 在 PHP 中的功能也不像。
  • @olive_tree 那么您希望这些字符显示为文字标记而不是字符串?
  • @Alnitak 我说的是 Rand fn,它只需要整数输入。

标签: php random


【解决方案1】:

您可以将符号存储在一个数组中并使用array_rand() 选择一个随机项目:

$signs = array('|', '★', '●', '-');
$random = $signs[array_rand($signs)];

echo $random;

【讨论】:

  • 确保文件以 UTF-8 编码保存。
【解决方案2】:

PHP rand() 需要一个由两个 int 值定义的范围。所以一个有效的电话是rand(0,5)。如果您需要预定义字符串中的随机字符,您可以这样做:

$str = '|★●-';
echo $str{rand(0,strlen($str)-1)};

【讨论】:

  • 没关系,但我的网站无法显示★我的网站使用<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  • 奇怪的是,这似乎不起作用,因为在从字符串中选择字符后丢失了编码。然后你必须执行 Gergo Erdosi 建议的数组版本。
【解决方案3】:

来自 PHP 文档:

rand — 生成一个随机整数

所以你可以做的是随机化一个整数,它可以作为包含你想要的符号的数组的索引。

【讨论】:

  • 对,那组标志将在标志周围加上引号!
【解决方案4】:

PHP rand 函数接受两个数字而不是字符。你应该这样做:

// Define a function that takes an array an return
// random element from this array
function getRand($array) {
    $size = count($array);
    $index = rand(0, $size); // random index
    return $array[$index];
}

// And use it like this
echo getRand(array('|','★','●','-'));

请注意,值在引号之间!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多