日期:2014-05-17  浏览次数:20436 次

大家帮忙看下这段代码哪有问题
<?php
$str='abcdefghijklmnopqrstuvwxyz'; 
$count = 123456789;

$str1 = $str[floor(floor(floor(floor(floor($count/26)/26)/26)/26)/26)];
$str2 = $str[floor(floor(floor(floor($count/26)/26)/26)/26)%26];
$str3 = $str[floor(floor(floor($count/26)/26)/26)%26];
$str4 = $str[floor(floor($count/26)/26)%26];
$str5 = $str[floor($count/26)%26];
$str6 = $str[$count%26];
echo $str1.'<br/>';
echo $str2.'<br/>';
echo $str3.'<br/>';
echo $str4.'<br/>';
echo $str5.'<br/>';
echo $str6.'<br/>';

?>

报这个错:Notice: String offset cast occurred in E:\www\rand.php on line 5

------解决方案--------------------
考察一下
$n = floor(floor(floor(floor(floor($count/26)/26)/26)/26)/26);
var_dump($n);
float(10)

下标应该是整型数,所以
$str1 = $str[floor(floor(floor(floor(floor($count/26)/26)/26)/26)/26)];
应写作
$str1 = $str[intval(floor(floor(floor(floor(floor($count/26)/26)/26)/26)/26))];

------解决方案--------------------
引用:
考察一下
$n = floor(floor(floor(floor(floor($count/26)/26)/26)/26)/26);
var_dump($n);
float(10)

下标应该是整型数,所以
$str1 = $str[floor(floor(floor(floor(floor($count/26)/26)/26)/26)/26)];
应写作
$str1 = $str[intval(floor(floor(floor(floor(floor($count/26)/26)/26)/26)/26))];


版主强大哈,我半天都不知道从何处手呢