পিএইচপি-তে অন্তর্নির্মানের সর্বাধিক মূল্য কত?


117

বিশেষ লাইব্রেরিগুলি উপেক্ষা করা যা আপনাকে খুব বড় সংখ্যার সাথে কাজ করার অনুমতি দেয়, আপনি পিএইচপি-তে সবচেয়ে বড় মান কী করতে পারবেন?

উত্তর:


124

থেকে পিএইচপি ম্যানুয়াল :

একটি পূর্ণসংখ্যার আকার প্ল্যাটফর্ম নির্ভর although পিএইচপি স্বাক্ষরবিহীন পূর্ণসংখ্যার সমর্থন করে না। ধ্রুবক PHP_INT_SIZE এবং পিএইচপি ৪.৪.০ এবং পিএইচপি ৫.০.৫ থেকে ধ্রুবক PHP_INT_MAX ব্যবহার করে পূর্ণসংখ্যার আকার নির্ধারণ করা যেতে পারে।

PH৪-বিট প্ল্যাটফর্মগুলির পিএইচপি 7 এর আগে উইন্ডোজ বাদে সাধারণত 9E18 এর সর্বাধিক মান থাকে, যেখানে এটি সর্বদা 32 বিট ছিল।


15
ঠিক আছে, এমডি 64 লিনাক্স-এ যা আজকাল প্রচলিত রয়েছে এটির 9223372036854775807 (2 ^ 63-1)
ডার্বার্ট

4
এটি প্রচুর অঙ্ক - উত্সর্গীকৃত সার্ভারের জন্য কেনার সময় আমি ইন্টেলের থেকে কখনই AMD বেছে নেওয়ার কথা ভাবতে পারি তার প্রথম কারণ। :)
karim79

39
@ করিম ,৯, আমার মনে হয় এটি খিলানটি -৪-বিট হওয়ার কারণে, এটি এএমডি হওয়ার কারণে নয়। =]
স্টারগার

7
এএমডি 64 হ'ল এএমডি এবং ইন্টেল উভয় দ্বারা ব্যবহৃত 64-বিট আর্কিটেকচারের একটি নাম। এর অন্যান্য নামগুলির মধ্যে x64 এবং ইন্টেল include৪ অন্তর্ভুক্ত রয়েছে stra স্ট্র্যাগার যেমন বলেছেন, এটিএমডি হওয়ার সাথে কিছুই করার নেই
থোমাসরুটটার

4
আমার উইন্ডোজ এক্সএএমপিপি প্রতিধ্বনির 2147483647। আমার এএমডি অ্যাথলন এক্স 2 ছিল
ভোভা পপোভ

86

পিএইচপি 32-বিট বিল্ডস:

  • পূর্ণসংখ্যা -2,147,483,648 থেকে 2,147,483,647 (± 2 বিলিয়ন) হতে পারে

পিএইচপি-র 64-বিট বিল্ডস:

  • পূর্ণসংখ্যা -9,223,372,036,854,775,808 থেকে 9,223,372,036,854,775,807 (~ 9 পঞ্চম) হতে পারে

সংখ্যাগুলি অন্তর্ভুক্ত।

দ্রষ্টব্য: কিছু 64৪-বিট বিল্ড একবারে 32-বিট পূর্ণসংখ্যার ব্যবহৃত হয়, বিশেষত পুরাতন উইন্ডোজ পিএইচপি ব্যবহার করে

এই রেঞ্জের বাইরের মানগুলি ভাসমান পয়েন্টের মান দ্বারা প্রতিনিধিত্ব করা হয়, যেমন এই রেঞ্জগুলির মধ্যে অ-পূর্ণসংখ্যার মানগুলি। কোনও গণনার ফলাফলের মানটি পূর্ণসংখ্যার হিসাবে উপস্থাপন করা যায় না তার ভিত্তিতে ভাসমান পয়েন্টে এই পরিবর্তনটি কখন ঘটতে হবে তা দোভাষী নিজে থেকেই নির্ধারণ করে।

পিএইচপি-র "স্বাক্ষরযুক্ত" পূর্ণসংখ্যার পক্ষে কোনও সমর্থন নেই, সমস্ত সংখ্যার সর্বাধিক মান "স্বাক্ষরিত" পূর্ণসংখ্যার সীমাতে সীমাবদ্ধ করে দেয়।


1
মজার বিষয় হল, 32-বিট বিল্ডে ফ্লোটগুলি ইনটগুলির চেয়ে উচ্চ মানের ক্ষেত্রে পূর্ণসংখ্যার যথার্থতা ধরে রাখতে পারে - 2% ^ 53 + 1 পর্যন্ত পূর্ণসংখ্যার মানগুলির জন্য ফ্লোটগুলি ব্যবহার করা যেতে পারে, এটি ইনটসের 2 ^ 31 - 1 এর চেয়ে উল্লেখযোগ্যভাবে বেশি।
-৪

21

পিএইচপি ints আকার প্ল্যাটফর্ম নির্ভর :

একটি পূর্ণসংখ্যার আকার প্ল্যাটফর্ম নির্ভর, যদিও সর্বাধিক প্রায় দুই বিলিয়ন মূল্য স্বাভাবিক মান (এটি 32 বিট স্বাক্ষরিত)। পিএইচপি স্বাক্ষরবিহীন পূর্ণসংখ্যার সমর্থন করে না। ধ্রুবক PHP_INT_SIZE এবং পিএইচপি ৪.৪.০ এবং পিএইচপি ৫.০.৫ থেকে ধ্রুবক PHP_INT_MAX ব্যবহার করে পূর্ণসংখ্যার আকার নির্ধারণ করা যেতে পারে।

পিএইচপি 6 "দীর্ঘতর" (64 বিট ইনট) যুক্ত করে।


2
আমি এই ডাউনভোটগুলি পাই না .. কিছু অতিরিক্ত তথ্য withুকিয়ে দিয়েও এটি পুরোপুরি ভাল উত্তর। এটি সংশোধন করার জন্য +1।
নিকফ

3
এই উত্তরটি মূলত "প্ল্যাটফর্ম পড়া মধ্যে নির্ভরশীল" (নির্ভরশীল নয়)। এটি আরও (এখনও) দাবি করে যে পিএইচপি 6 এর আগে 64৪-বিট ইন্টের অস্তিত্ব ছিল না এটি মিথ্যা।
thomasrutter

পিএইচপি 6 যদিও কখনও ঘটেনি, তাই এটি একধরণের অপ্রাসঙ্গিক।
BadHorsie

16

(কিছুটা দেরি হলেও কার্যকর হতে পারে)

কেবলমাত্র পিএইচপিএনপিএমএএমএক্স এবং পিএইচপিএনপিএস_এসআইজেজে বিশ্বাস করুন , এই মানটি আপনার খিলান (32/64 বিট) এবং আপনার ওএসে পরিবর্তিত হয় ...

অন্য কোনও "অনুমান" বা "ইঙ্গিত" মিথ্যা হতে পারে।


6

আহ আমি এটি পেয়েছি: 2 32 - 1 (2147483647)

http://au2.php.net/int

পূর্ণসংখ্যা ওভারফ্লো

পিএইচপি যদি পূর্ণসংখ্যার প্রান্তের সীমা ছাড়িয়ে কোনও সংখ্যার মুখোমুখি হয়, তবে এটি পরিবর্তে একটি ফ্লোট হিসাবে ব্যাখ্যা করা হবে। এছাড়াও, কোনও ক্রিয়াকলাপের ফলে সংখ্যার পূর্ণসংখ্যার প্রান্তের সীমানা ছাড়িয়ে যাওয়ার ফলাফল পরিবর্তে একটি ফ্লোট ফিরে আসবে।

<?php
$large_number =  2147483647;
var_dump($large_number);
// output: int(2147483647)

$large_number =  2147483648;
var_dump($large_number);
// output: float(2147483648)

8
এটি 32-বিট প্ল্যাটফর্মে যা হবে। অনেক লোক 64৪-বিট প্ল্যাটফর্মে সার্ভার চালায় তাও বিবেচনা করুন।
থোমাসরুটটার

2

এটি আপনার ওএসের উপর নির্ভর করে তবে ম্যানুয়াল অনুসারে 2147483647 হ'ল স্বাভাবিক মান ।


6
বিশেষত, এটি আপনি 32-বিট প্ল্যাটফর্মে বা 64-বিট চলমান কিনা তার উপর নির্ভর করে। 32-বিট এমন একটি বিশ্বে কেবল "সাধারণ" যেখানে বেশিরভাগ লোক 32-বিট সার্ভার চালায়। ক্রমবর্ধমানভাবে এটি হয়ে উঠছে না।
থোমস্রুটটার

0

PHP_INT_*ধ্রুবকগুলি দীর্ঘকাল ধরে বিদ্যমান থাকলেও একই MIN / MAX মানগুলি নেতিবাচক সংখ্যায় না পৌঁছানো পর্যন্ত বাম শিফট করে প্রোগ্রামগতভাবে পাওয়া যেতে পারে:

$x = 1;
while ($x > 0 && $x <<= 1);
echo "MIN: ", $x;
echo PHP_EOL;
echo "MAX: ", ~$x;

0

এটি পিএইচপি চালিত সার্ভারের আর্কিটেকচারের বিষয়। 64-বিটের জন্য,

print PHP_INT_MIN . ", ” . PHP_INT_MAX; উৎপাদনের -9223372036854775808, 9223372036854775807

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.