mt_rand() returns 意外输出
mt_rand() returns unexpected output
我正在使用我网站的广告系统,但遇到了问题。
<?php
function bdads($size, $company) {
if($company == 'nufa') {
if ($size == '300'){
echo 'n300';
}
if ($size == '160'){
echo 'n160';
}
if ($size == '728'){
echo 'n728';
}
if ($size == '700'){
echo 'n700';
}
}
if($company == 'gnr') {
if ($size == '300'){
echo 'g300';
}
if ($size == '160'){
echo 'g160';
}
if ($size == '728'){
echo 'g728';
}
if ($size == '700'){
echo 'g700';
}
}
}
function bdad($size, $company){
$zsize = $size;
if($company == 'nufa'){
echo bdads($zsize, 'nufa');
}
if($company == 'gnr'){
echo bdads($zsize, 'gnr');
}
if($company == 'both'){
$RandomList = [ bdads($zsize, 'gnr'), bdads($zsize, 'nufa')];
echo $RandomList[mt_rand(0, count($RandomList) - 1)];
}
}
?>
现在,一切似乎都很好.. 例如,
<?php echo bdad(728, 'gnr'); ?>
返回 g728(如预期)
<?php echo bdad(300, 'nufa'); ?>
返回 n300(如预期)
但所有的麻烦都在于生成随机内容。
<?php echo bdad(300, 'both'); ?>
返回 g300n300
我想让它随机选择g300或n300。
编辑:
- 将
$a
更改为 $RandomList
,但结果仍然相同
我试着稍微简化了你的功能:
您必须 return your values, otherwise your functions will return NULL by default. Also you can access a string like an array, so I used $company[0]
to get the first letter of the company, which you then can concatenate 尺寸。
<?php
function bdads($size, $company) {
return $company[0] . $size;
}
function bdad($size, $company){
if($company == "both") {
$RandomList = [bdads($size, "gnr"), bdads($size, "nufa")];
return $RandomList[mt_rand(0, count($RandomList) - 1)];
} else {
return dads($size, $company);
}
}
echo bdad(300, "both");
?>
输出:
n300 //Or g300
我正在使用我网站的广告系统,但遇到了问题。
<?php
function bdads($size, $company) {
if($company == 'nufa') {
if ($size == '300'){
echo 'n300';
}
if ($size == '160'){
echo 'n160';
}
if ($size == '728'){
echo 'n728';
}
if ($size == '700'){
echo 'n700';
}
}
if($company == 'gnr') {
if ($size == '300'){
echo 'g300';
}
if ($size == '160'){
echo 'g160';
}
if ($size == '728'){
echo 'g728';
}
if ($size == '700'){
echo 'g700';
}
}
}
function bdad($size, $company){
$zsize = $size;
if($company == 'nufa'){
echo bdads($zsize, 'nufa');
}
if($company == 'gnr'){
echo bdads($zsize, 'gnr');
}
if($company == 'both'){
$RandomList = [ bdads($zsize, 'gnr'), bdads($zsize, 'nufa')];
echo $RandomList[mt_rand(0, count($RandomList) - 1)];
}
}
?>
现在,一切似乎都很好.. 例如,
<?php echo bdad(728, 'gnr'); ?>
返回 g728(如预期)
<?php echo bdad(300, 'nufa'); ?>
返回 n300(如预期)
但所有的麻烦都在于生成随机内容。
<?php echo bdad(300, 'both'); ?>
返回 g300n300 我想让它随机选择g300或n300。
编辑:
- 将
$a
更改为$RandomList
,但结果仍然相同
我试着稍微简化了你的功能:
您必须 return your values, otherwise your functions will return NULL by default. Also you can access a string like an array, so I used $company[0]
to get the first letter of the company, which you then can concatenate 尺寸。
<?php
function bdads($size, $company) {
return $company[0] . $size;
}
function bdad($size, $company){
if($company == "both") {
$RandomList = [bdads($size, "gnr"), bdads($size, "nufa")];
return $RandomList[mt_rand(0, count($RandomList) - 1)];
} else {
return dads($size, $company);
}
}
echo bdad(300, "both");
?>
输出:
n300 //Or g300