PHP中的mt_rand有什么问题?

时间:2015-05-08 15:43:50

标签: php

我尝试制作一个简单的名称生成器。帮助我找出它无法正常工作的原因。我认为这是因为mt_rand函数。对不起,如果问题看起来平庸或无关紧要,我第一次来这里是新编程。这是代码:

<?php
    echo 'Ovo je moja verzija Polumenta generatora';
    $prvo = 'bcdfghtnjpknmlrjdzdjs';
    $drugo = 'aeiou';
    $trece = 'bcdfghtnjpknmlrjsdzdj';
    $cetvrto = 'uo';
    $prvos = mt_rand($prvo[0],$prvo[17]);
    $drugos = mt_rand($drugo[0],$drugo[4]);
    $treces = mt_rand($trece[0],$trece[17]);
    $cetvrtos = mt_rand($cetvrto[0],$cetvrto[1]);
        echo $prvos.$drugos.$treces.$cetvrtos.' Polumenta'

?>

2 个答案:

答案 0 :(得分:2)

mt_rand将整数作为参数并返回一个整数。您正在尝试传递字符并返回字符。你应该做点什么:

<?php
  echo 'Ovo je moja verzija Polumenta generatora';
  $prvo = 'bcdfghtnjpknmlrjdzdjs';
  $drugo = 'aeiou';
  $trece = 'bcdfghtnjpknmlrjsdzdj';
  $cetvrto = 'uo';
  $prvos = $prvo[mt_rand(0,strlen($prvo) - 1)];
  $drugos = $drugo[mt_rand(0,strlen($drugo) - 1)];
  $treces = $trece[mt_rand(0,strlen($trece) - 1)];
  $cetvrtos = $cetvrto[mt_rand(0,strlen($cetvrto) - 1)];
  echo $prvos.$drugos.$treces.$cetvrtos.' Polumenta'
?>

答案 1 :(得分:0)

您可以使用数组和rand()函数以另一种方式创建它。

$(document).ready(function () {
    var ranges = $('div.box > input[type=range]'),
        table  = $('table.table'),
        hrow   = $('tr:has(th)', table),
        orow   = $('tr:has(td)', table);

    ranges.on('change', function() {
        var value = this.value,
            label = $(this).prev('label').text().trim(),
            column  = $.inArray( label, $('th',hrow).map(function(i,v) {
                return $(v).text().trim();
            }) );

        //display the new value
        $(this).next('label').text( value );

        //hide [remove hightlight] all rows but header
        orow.removeClass('highlight');

        //show [hightlight] rows with values
        orow.filter(function() {
            return $('td',this).eq(column).text().trim() == value;
        }).addClass('highlight');
    }).eq(0).change();
});

比任意长度生成随机的字符序列

$chrs[0] = str_split('bcdfghtnjpknmlrjdzdjs'); // array of consonants
$chrs[1] = str_split('aeiou'); // array of vowels
$length = 8; // nick name length