Xin lỗi vì tiêu đề xấu, nhưng tôi không biết cách gọi nó.Tại sao php nghĩ rằng ints lớn là nổi (nhưng đôi khi chỉ)?
echo rand(0,10e20) . "\n"; // bad
echo rand(0,10e19) . "\n"; // bad
echo rand(0,10e18) . "\n"; // bad
echo rand(0,10e17) . "\n"; // OK
echo rand(0,10e16) . "\n";
echo rand(0,10e15) . "\n\n";
var_dump(10e20); // float
var_dump(10e15); // float
Output:
Cảnh báo: rand() dự kiến tham số 2 là số nguyên, float cho trong /srv/webroot-sandbox/index.php(73): eval() 'd mã trên dòng 1
Cảnh báo: rand() dự kiến tham số 2 là số nguyên, float cho trong /srv/webroot-sandbox/index.php(73): eval() 'd code on line 2
Cảnh báo: rand() hy vọng tham số 2 được số nguyên, float cho trong /srv/webroot-sandbox/index.php(73): eval() 'd code on line 3
578009006101638016
69608699344098568
7596902768127620
float(1.0E+21)
float(1.0E+16)
Ai đó có thể giải thích những gì đang xảy ra? Đây là PHP 7, nó làm việc tốt trong PHP 5 (tốt, ít nhất là tôi đã không nhận được bất kỳ cảnh báo nào).
Vẫn đang tìm kiếm nhưng MIGHT có thể vượt quá kích thước của ... – FirstOne
hmm có thể cố gắng truyền và không hoạt động ở độ lớn nhất định?Nhưng buồn cười rằng nó làm việc OK trong PHP 5 – MightyPork
theo hướng dẫn: http://php.net/manual/en/language.types.integer.php Một khi bạn đi ra ngoài giới hạn, bạn nhận được trong lỗi. Và điều này là cụ thể cho php7. – durbnpoisn