我创建了一个函数,它可以从硬编码的单词列表中随机生成短语。我有一个名为
我的问题是,由于某种原因,PHP给我提供的结果不一致。它确实给了我随机化的单词,但是单词数量不一致。我将默认值设置为4个单词,但它给出的短语单词数从1到4不等,而不是4个。这个程序非常简单,几乎令人难以置信我无法确定确切的问题所在。似乎链条中断裂的地方是正在被索引的
get_words()
的函数,它有一串硬编码的单词字符串,将其转换为数组,然后进行洗牌并返回。
generate_random_phrase()
调用get_words()
,它迭代get_words()
n次,并在每次迭代中将n个单词连接成最终短语,该短语将返回给用户。我的问题是,由于某种原因,PHP给我提供的结果不一致。它确实给了我随机化的单词,但是单词数量不一致。我将默认值设置为4个单词,但它给出的短语单词数从1到4不等,而不是4个。这个程序非常简单,几乎令人难以置信我无法确定确切的问题所在。似乎链条中断裂的地方是正在被索引的
$words
数组,由于某种原因,有时索引会失败。我不熟悉PHP,有人能解释一下吗?<?php
function generate_random_phrase() {
$words = get_words();
$number_of_words = get_word_count();
$phrase = "";
$symbols = "!@#$%^&*()";
echo print_r($phrase);
for ($i = 0;$i < $number_of_words;$i++) {
$phrase .= " ".$words[$i];
}
if (isset($_POST['include_numbers']))
$phrase = $phrase.rand(0, 9);
if (isset($_POST['include_symbols']))
$phrase = $phrase.$symbols[rand(0, 9)];
return $phrase;
}
function get_word_count() {
if ($_POST['word_count'] < 1 || $_POST['word_count'] > 9)
$word_count = 4; #default
else
$word_count = $_POST['word_count'];
return $word_count;
}
function get_words() {
$BASE_WORDS = "my sentence really hope you
like narwhales bacon at midnight but only
ferver where can paper laptops spoon door knobs
head phones watches barbeque not say";
$words = explode(' ', $BASE_WORDS);
shuffle($words);
return $words;
}
?>