সর্বশেষ আপডেট: 1.11.2015

PHP এ আমরা ব্যবহার করতে পারি বিভিন্ন অপারেটর: পাটিগণিত, যৌক্তিক, ইত্যাদি এর প্রতিটি ধরনের অপারেশন তাকান.

পাটিগণিত অপারেশন

    + (অ্যাডিশন অপারেশন)

    উদাহরণস্বরূপ, $a + 5

    - (বিয়োগ অপারেশন)

    উদাহরণস্বরূপ, $a - 5

    * (গুণ)

    উদাহরণস্বরূপ, $a * 5

    / (বিভাগ)

    উদাহরণস্বরূপ, $a / 5

    % (বিভাগের অবশিষ্ট প্রাপ্তি)

    যেমন: $a=12; প্রতিধ্বনি $a % 5; // সমান 2

    ++ (এক করে মান বৃদ্ধি/বৃদ্ধি)

    উদাহরণস্বরূপ, ++$a

    ++$a এবং $a++ অভিব্যক্তির মধ্যে পার্থক্য বোঝা গুরুত্বপূর্ণ। যেমন:

    $a=12; $b=++$a; // $b সমান 13 echo $b;

    এখানে, প্রথমে, $a ভেরিয়েবলের মানের সাথে একটি যোগ করা হয় এবং তারপরে এটির মান $b এর সাথে সমান হয়। অভিব্যক্তিটি এইরকম হলে এটি ভিন্ন হবে: $b=$a++; . এখানে, প্রথমে ভেরিয়েবলের মান $a ভেরিয়েবল $b এর সমান ছিল, এবং তারপর ভেরিয়েবল $a এর মান বাড়ানো হয়েছে।

    -- (একটি করে মান হ্রাস/কমান)

    উদাহরণস্বরূপ, --$a। এবং এছাড়াও, বৃদ্ধির ক্ষেত্রে, দুটি ধরণের রেকর্ডিং রয়েছে: --$a এবং $a--

অ্যাসাইনমেন্ট অপারেটর

    একটি ভেরিয়েবলকে একটি নির্দিষ্ট মানের সাথে সমান করে: $a = 5

    ফলাফল অ্যাসাইনমেন্ট দ্বারা অনুসরণ যোগ. যেমন: $a=12; $a += 5; প্রতিধ্বনি $a; // 17 এর সমান

    বিয়োগ ফল বরাদ্দ দ্বারা অনুসরণ. যেমন: $a=12; $a -= 5; প্রতিধ্বনি $a; // সমান 7

    ফলাফলের অ্যাসাইনমেন্টের পরে গুণন: $a=12; $a *= 5; প্রতিধ্বনি $a; // 60 সমান

    ফলাফলের নিয়োগের পরে বিভাগ: $a=12; $a /= 5; প্রতিধ্বনি $a; // সমান 2.4

    সারি সংযুক্ত করুন এবং ফলাফল বরাদ্দ করুন। দুটি লাইনে প্রযোজ্য। যদি ভেরিয়েবলগুলি স্ট্রিং সংরক্ষণ না করে, কিন্তু, উদাহরণস্বরূপ, সংখ্যা, তাহলে তাদের মানগুলি স্ট্রিংগুলিতে রূপান্তরিত হয় এবং তারপরে অপারেশনটি সঞ্চালিত হয়: $a=12; $a . = 5; প্রতিধ্বনি $a; // 125 এর সমান // $b="12" এর সমান; $b .="5"; // 125 এর সমান

    বিভাজনের অবশিষ্টাংশ প্রাপ্ত করা এবং তারপর ফলাফল বরাদ্দ করা: $a=12; $a % = 5; প্রতিধ্বনি $a; // সমান 2

তুলনা অপারেশন

তুলনামূলক ক্রিয়াকলাপগুলি সাধারণত শর্তসাপেক্ষ নির্মাণে ব্যবহৃত হয় যখন দুটি মান তুলনা করা প্রয়োজন এবং তুলনার ফলাফলের উপর নির্ভর করে নির্দিষ্ট ক্রিয়া সম্পাদন করে। নিম্নলিখিত তুলনা অপারেশন উপলব্ধ.

    সমতা অপারেটর দুটি মান তুলনা করে, এবং যদি তারা সমান হয়, তাহলে সত্য প্রদান করে, অন্যথায় মিথ্যা প্রদান করে: $a == 5

    পরিচয় অপারেটর দুটি মান তুলনা করে, এবং যদি তারা সমান হয়, সত্য প্রদান করে, অন্যথায় মিথ্যা প্রদান করে: $a === 5

    দুটি মান তুলনা করে, এবং যদি তারা সমান না হয়, তবে সত্য প্রদান করে, অন্যথায় মিথ্যা প্রদান করে: $a != 5

    দুটি মান তুলনা করে, এবং যদি তারা সমান না হয়, তবে সত্য প্রদান করে, অন্যথায় মিথ্যা প্রদান করে: $a !== 5

    দুটি মানের তুলনা করে, এবং যদি প্রথমটি দ্বিতীয়টির চেয়ে বড় হয়, তবে সত্য প্রদান করে, অন্যথায় মিথ্যা প্রদান করে: $a > 5

    দুটি মান তুলনা করে, এবং যদি প্রথমটি দ্বিতীয়টির চেয়ে কম হয়, তবে সত্য প্রদান করে, অন্যথায় মিথ্যা প্রদান করে: $a< 5

    দুটি মান তুলনা করে, এবং যদি প্রথমটি দ্বিতীয়টির চেয়ে বড় বা সমান হয়, তবে সত্য প্রদান করে, অন্যথায় মিথ্যা প্রদান করে: $a >= 5

    দুটি মান তুলনা করে, এবং যদি প্রথমটি দ্বিতীয়টির চেয়ে কম বা সমান হয়, তবে সত্য প্রদান করে, অন্যথায় মিথ্যা প্রদান করে: $a<= 5

সমতা এবং পরিচয় অপারেটর

উভয় অপারেটর দুটি অভিব্যক্তি তুলনা করে এবং অভিব্যক্তি সমান হলে সত্য ফেরত দেয়। কিন্তু তাদের মধ্যে পার্থক্য আছে। যদি সমতা অপারেশনটি বিভিন্ন ধরণের দুটি মান নেয়, তবে সেগুলি একটিতে হ্রাস করা হয় - যেটিকে দোভাষী সর্বোত্তম বলে মনে করেন। যেমন:

স্পষ্টতই, ভেরিয়েবল সঞ্চয় বিভিন্ন অর্থবিভিন্ন ধরনের কিন্তু তুলনা করার সময়, তারা একই ধরণের - সংখ্যাসূচকে হ্রাস পাবে। এবং ভেরিয়েবল $a 22 নম্বরে কমে যাবে। এবং শেষ পর্যন্ত, উভয় ভেরিয়েবল সমান হবে।

অথবা, উদাহরণস্বরূপ, নিম্নলিখিত ভেরিয়েবলগুলিও সমান হবে:

$a = মিথ্যা; $b = 0;

এই ধরনের পরিস্থিতি এড়াতে, সমতুল্য অপারেশন ব্যবহার করা হয়, যা শুধুমাত্র মানই নয়, পরিবর্তনশীলের ধরণকেও বিবেচনা করে:

$a = "22a"; $b = 22; if($a===$b) প্রতিধ্বনি "সমান"; অন্যথায় "সমান নয়" প্রতিধ্বনি;

এখন ভেরিয়েবল সমান হবে না।

অসমতা অপারেটর!= এবং !== একইভাবে কাজ করে।

লজিক্যাল অপারেশন

লজিক্যাল ক্রিয়াকলাপগুলি সাধারণত দুটি তুলনামূলক ক্রিয়াকলাপের ফলাফলগুলিকে একত্রিত করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, বেশ কয়েকটি শর্ত সত্য হলে আমাদের একটি নির্দিষ্ট ক্রিয়া সম্পাদন করতে হবে। নিম্নলিখিত লজিক্যাল অপারেশন উপলব্ধ:

    উভয় তুলনামূলক ক্রিয়াকলাপ সত্য হলে সত্য প্রদান করে, অন্যথায় মিথ্যা প্রদান করে: $a == 5 && $b = 6

    && অপারেশনের অনুরূপ: $a == 5 এবং $b > 6

    কমপক্ষে একটি তুলনামূলক অপারেশন সত্য হলে সত্য ফেরত দেয়, অন্যথায় মিথ্যা প্রদান করে: $a == 5 || $b = 6

    অপারেশনের অনুরূপ || : $a< 5 or $b > 6

    তুলনামূলক ক্রিয়াকলাপ মিথ্যা হলে সত্য ফেরত দেয়: !($a >= 5)

    শুধুমাত্র একটি মান সত্য হলে সত্য দেখায়। যদি উভয়ই সত্য হয় বা কোনোটিই সত্য না হয় তবে মিথ্যা ফেরত দেয়। যেমন: $a=12; $b=6; যদি ($a xor $b) প্রতিধ্বনি "সত্য"; অন্যথায় "মিথ্যা" প্রতিধ্বনি;

    এখানে লজিক্যাল অপারেশনের ফলাফল মিথ্যা হবে কারণ উভয় ভেরিয়েবলের একটি নির্দিষ্ট মান রয়েছে। কোড পরিবর্তন করা যাক:

    $a=12; $b=শূন্য; যদি ($a xor $b) প্রতিধ্বনি "সত্য"; অন্যথায় "মিথ্যা" প্রতিধ্বনি;

    এখানে ফলাফলটি ইতিমধ্যেই সত্য হবে, যেহেতু একটি ভেরিয়েবলের মান সেট করা নেই। যদি একটি ভেরিয়েবলের মান NULL থাকে, তাহলে যৌক্তিক ক্রিয়াকলাপে এর মানটিকে মিথ্যা হিসাবে গণ্য করা হবে

বিট অপারেশন

বিট অপারেশনগুলি একটি সংখ্যার পৃথক বিটের উপর সঞ্চালিত হয়। বাইনারি উপস্থাপনায় সংখ্যা বিবেচনা করা হয়, উদাহরণস্বরূপ, বাইনারি উপস্থাপনায় 2 হল 010, সংখ্যা 7 হল 111৷

    এবং (যৌক্তিক গুণ)

    গুণন বিটওয়াইসে সঞ্চালিত হয়, এবং যদি উভয় অপারেন্ডের বিট মান 1 এর সমান হয়, তাহলে অপারেশনটি 1 প্রদান করে, অন্যথায় 0 নম্বর প্রদান করা হয় উদাহরণস্বরূপ: $a1 = 4; //100 $b1 = 5; //101 প্রতিধ্বনি $a1 & $b1; // সমান 4

    এখানে বাইনারি সিস্টেমে 4 নম্বরটি 100 এর সমান এবং 5 নম্বরটি 101 এর সমান। সংখ্যাগুলিকে বিটওয়াইসে গুণ করুন এবং পান (1*1, 0*0, 0 *1) = 100, অর্থাৎ 4 নম্বর। দশমিক বিন্যাসে।

    | (যৌক্তিক সংযোজন)

    যৌক্তিক গুণের অনুরূপ, অপারেশনটি বাইনারি ডিজিটগুলিতেও সঞ্চালিত হয়, কিন্তু এখন একটি প্রত্যাবর্তন করা হয় যদি একটি নির্দিষ্ট অঙ্কের অন্তত একটি সংখ্যার একটি থাকে। যেমন: $a1 = 4; //100 $b1 = 5; //101 echo $a1 | $b1; // সমান ৫

    ~ (যৌক্তিক অস্বীকার)

    সমস্ত বিটকে উল্টে দেয়: যদি বিটের মান 1 হয়, তবে এটি শূন্য হয়ে যায় এবং এর বিপরীতে।

    $b = 5; প্রতিধ্বনি ~$b;<

    x

x>>y - x সংখ্যাটিকে y সংখ্যা দ্বারা ডানদিকে স্থানান্তর করে। উদাহরণস্বরূপ, 16>>1 সংখ্যাটি 16 (যা বাইনারিতে 10000) এক জায়গায় ডানদিকে স্থানান্তর করে, তাই ফলাফলটি 1000 বা দশমিকে 8 নম্বর হয়

সংযুক্ত স্ট্রিংস

ডট অপারেটর স্ট্রিং সংযুক্ত করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, আসুন কয়েকটি লাইন সংযুক্ত করি:

$a="হ্যালো,"; $b=" বিশ্ব"; প্রতিধ্বনি $a. $b "!";

যদি ভেরিয়েবলগুলি স্ট্রিং ছাড়া অন্য ধরনের প্রতিনিধিত্ব করে, যেমন সংখ্যা, তাহলে তাদের মানগুলি স্ট্রিং-এ রূপান্তরিত হয় এবং তারপর স্ট্রিং কনক্যাটেনেশন অপারেশনও ঘটে। লজিক্যাল অপারেশন সব প্রোগ্রামিং ল্যাঙ্গুয়েজ এবং বিদ্যমানপিএইচপি

কোন ব্যতিক্রম সরল ভাগ, গুণ, যোগ বা বিয়োগ ছাড়াও, পূর্ণসংখ্যা এবং অবশিষ্ট ভাগ রয়েছে, যেগুলি সম্পর্কে আমরা এখন কথা বলব এবং বিস্তারিত উদাহরণ ব্যবহার করে বিশ্লেষণ করব।

পূর্ণসংখ্যা বিভাগ হল বিভাগ থেকে পূর্ণসংখ্যা অংশের আউটপুট। উদাহরণস্বরূপ, 5 কে 2 দ্বারা ভাগ করলে আমরা 2 পাব, 2.5 নয়।

পিএইচপি তে পূর্ণসংখ্যা বিভাগ কিভাবে করবেন

উদাহরণস্বরূপ, পাইথনে এই বিভাগটি একটি সাধারণ অপারেটর ব্যবহার করে করা হয়: "//"।

এবং ইন লজিক্যাল অপারেশন সব প্রোগ্রামিং ল্যাঙ্গুয়েজ এবং বিদ্যমানএটি করা এত সহজ হবে না, তবে এখনও প্রক্রিয়াটির জন্য ভাষার সুপার জ্ঞানের প্রয়োজন হয় না।

কিভাবে এটি বাস্তবায়ন করা যেতে পারে এর একটি উদাহরণ দেওয়া যাক।

IN লজিক্যাল অপারেশন সব প্রোগ্রামিং ল্যাঙ্গুয়েজ এবং বিদ্যমানফাংশনের সপ্তম সংস্করণটি এইরকম দেখাচ্ছে:

Intdiv();

একটি পুরানো সংস্করণে, একই ফাংশন এই মত দেখায়:

সব সংস্করণের জন্য একটি পদ্ধতি আছে:

মেঝে ();

কিভাবে আবেদন করতে হবে?

উদাহরণস্বরূপ, প্রথম ফাংশনটি ধরা যাক, বাকিগুলি প্রায় একইভাবে সঞ্চালিত হয়।

$ফলাফল = intdiv(10, 3); echo $result;

পিএইচপি-তে অবশিষ্ট বিভাগ

ডিভিশনের অবশিষ্ট পূর্ণসংখ্যা প্রদর্শন করতে পিএইচপিশুধু "%" অপারেটর ব্যবহার করাই যথেষ্ট।

$i = 10% 3; প্রতিধ্বনি $i;

আমরা দেখতে পাচ্ছি, সবকিছু বেশ সহজ এবং দীর্ঘ ব্যাখ্যা প্রয়োজন হয় না।

এটা কোথায় ব্যবহার করা যেতে পারে?

পূর্ণসংখ্যা বিভাজনের জ্ঞান লজিক্যাল অপারেশন সব প্রোগ্রামিং ল্যাঙ্গুয়েজ এবং বিদ্যমানআপনি যদি দুটি সংখ্যার তুলনা করতে চান, একটি উল্টানো সংখ্যা (একটি জনপ্রিয় ব্যায়াম), বা উদাহরণস্বরূপ, FizzBuzz নামে একটি প্রোগ্রাম তৈরি করতে চান তবে এটি খুব কার্যকর হবে। এর সারমর্ম হল যে আপনাকে 1 থেকে 100 পর্যন্ত একটি চক্র লিখতে হবে, যা প্রতিটি সংখ্যাকে 3 এবং 5 দ্বারা ভাগ করে। যদি 3 দ্বারা ভাগ করা সংখ্যাটির অবশিষ্ট 0 থাকে, তাহলে আমরা Fizz লিখব, যদি 5 দ্বারা ভাগ করা হয়, তাহলে Buzz এবং যদি, 5 এবং 3 উভয়কে ভাগ করে, অবশিষ্টাংশ 0 হয়, তাহলে আমরা FizzBuzz লিখি। এটি একটি খুব জনপ্রিয় ইন্টারভিউ টাস্ক। আপনি যদি এটি নিজেই সম্পন্ন করেন তবে আপনি নিজেকে নিয়ে গর্বিত হতে পারেন।

অথবা, উদাহরণস্বরূপ, আমাদের 452 নম্বর থেকে এর সমস্ত সংখ্যা (4, 5, 2) বের করতে হবে।

উপসংহার

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

এখন আপনি একটি প্রোগ্রামিং ভাষা শেখার এক ধাপ কাছাকাছি পিএইচপিএবং ভবিষ্যতে আপনি আরও ঘনিষ্ঠ হয়ে উঠবেন যদি আপনি ঠিক ততটা পরিশ্রমের সাথে অসুবিধাগুলি কাটিয়ে উঠতে পারেন।

সমস্ত মৌলিক গাণিতিক ক্রিয়াকলাপ PHP-তে উপলব্ধ। পূর্ণসংখ্যা এবং বাস্তব সংখ্যা উভয়ই অপারেন্ড হিসাবে ব্যবহার করা যেতে পারে।

টেবিলটি পাটিগণিত অপারেটরদের একটি তালিকা দেখায়:
অপারেটরসাইনবর্ণনা
সংযোজন + দুটি মান সংযোজন
বিয়োগ - একটি মান থেকে আরেকটি মান বিয়োগ করা
গুণ * দুটি মান গুণ করা
বিভাগ / একটি মান দিয়ে অন্য মানকে ভাগ করা
একটি বিভাগের বাকি পাওয়া % একটি মানকে আরেকটি দিয়ে ভাগ করা এবং অবশিষ্ট ফেরত দেওয়া (মডুলো বিভাগ)
ইনক্রিমেন্ট ++ একটি সংখ্যা এক দ্বারা বাড়ানোর জন্য সংক্ষিপ্ত বিবরণ
হ্রাস -- একটি সংখ্যা এক দ্বারা কমানোর জন্য সংক্ষেপে
ইউনারি নেগেটিভ - একটি ধনাত্মক সংখ্যা একটি ঋণাত্মক বা একটি ঋণাত্মক সংখ্যা একটি ধনাত্মক মধ্যে পরিণত

বিয়োগ, গুণ, ভাগ, মডুলো এবং যোগ অপারেটর

বিয়োগ, গুণ, ভাগ, মডুলো এবং যোগের অপারেটরগুলি গণিতের মতো একইভাবে ব্যবহৃত হয়। এখানে বিভাগ এবং মডুলো অপারেটরদের প্রতি মনোযোগ দেওয়া মূল্যবান।

ডিভিশন অপারেটর ("/") একটি ফ্লোটিং-পয়েন্ট নম্বর প্রদান করে, যদি না উভয় মানই পূর্ণসংখ্যা (বা স্ট্রিং যা পূর্ণসংখ্যাতে রূপান্তরিত হয়) হয় যা একটি পূর্ণসংখ্যা দ্বারা বিভক্ত হয়, এই ক্ষেত্রে এটি একটি পূর্ণসংখ্যা মান প্রদান করে।

ফলাফল2 = $ফলাফল2
"; echo "result3 = $result3
ফলাফল4 = $ফলাফল4"; ?>

মডুলো ডিভিশনে, অপারেশন শুরু হওয়ার আগে অপারেন্ডগুলিকে পূর্ণসংখ্যাতে রূপান্তরিত করা হয় (ভগ্নাংশ সরানো হয়)। বিভাজন অবশিষ্ট ক্রিয়াকলাপের ফলাফল % এর লভ্যাংশের মতো একই চিহ্ন থাকবে:

ইউনারি নেগেটিভ

unary negation অপারেটরকে "-" চিহ্ন দ্বারা চিহ্নিত করা হয় এবং এটি তার একমাত্র অপারেন্ডের অর্থকে বিপরীত করে:

এই ক্ষেত্রে, বন্ধনীগুলির প্রয়োজন হয় না কারণ একক অস্বীকৃতির সর্বোচ্চ অগ্রাধিকার রয়েছে, তবে তারা কোডটি সংগঠিত করতে সহায়তা করে যাতে এটি স্পষ্ট হয় যে সংখ্যা -5 এবং 4 যোগ করা হচ্ছে।

ইনক্রিমেন্ট

ইনক্রিমেন্ট অপারেটরকে ++ চিহ্ন দ্বারা চিহ্নিত করা হয় এবং এটি যে অপারেন্ডে কাজ করে তার উভয় পাশে স্থাপন করা যেতে পারে। এটি এই মানটিকে একটি করে বাড়ায়, ঠিক যেমন একটি মানের সাথে একটি যোগ করা। প্রকৃত ফলাফল নির্ভর করে অপারেটরটি যে অপারেন্ডের সাথে প্রয়োগ করা হয়েছিল তার আগে বা পরে প্রয়োগ করা হয়েছিল কিনা। এই অপারেটরটি প্রায়শই ভেরিয়েবলের সাথে ব্যবহার করা হয় এবং প্রায়শই এটি লুপের ভিতরে ঘটে (লুপগুলি পরে আলোচনা করা হবে)।

বৃদ্ধির উপসর্গ ফর্ম

উপসর্গ ফর্ম- যখন ইনক্রিমেন্ট অপারেটরকে অপারেন্ডের আগে স্থাপন করা হয়, তখন স্বরলিপির এই ফর্মটির অর্থ হল যে বৃদ্ধিটি প্রথমে কার্যকর করা হবে: এটি অপারেন্ডের মান এক দ্বারা বৃদ্ধি করে এবং শুধুমাত্র তখনই বাকি নির্দেশ কার্যকর করা হয়:

বৃদ্ধির পোস্টফিক্স ফর্ম

পোস্টফিক্স ফর্মএকটু ভিন্নভাবে লেখা হয় - এই ক্ষেত্রে অপারেন্ডের পরে ইনক্রিমেন্ট অবস্থিত। পোস্টফিক্স নোটেশনে, অপারেন্ডের প্রথম ব্যবহার তার বর্তমান মান প্রদান করে, শুধুমাত্র তার পরে মানটি এক দ্বারা বৃদ্ধি পাবে:

হ্রাস

ডিক্রিমেন্ট অপারেটরকে চিহ্ন দ্বারা চিহ্নিত করা হয় --, এবং ইনক্রিমেন্ট অপারেটরের বিপরীতে, এটি তার অপারেন্ডের মান এক দ্বারা বৃদ্ধি না করে বরং হ্রাস পায়। হ্রাস উপসর্গ এবং পোস্টফিক্স স্বরলিপির অনুমতি দেয়:

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

পিএইচপি ভাষার বিকাশকারীরা একটি সুপ্রতিষ্ঠিত পদ্ধতি গ্রহণ করেছিল এবং এই উদ্দেশ্যে ডিজাইন করা চাকাগুলিকে নতুন করে উদ্ভাবনের কোনো প্রচেষ্টা করেনি। আসল বিষয়টি হল যে পিএইচপি-তে ব্যবহৃত অনেকগুলি মৌলিক গাণিতিক ফাংশনগুলি কেবল তাদের সি প্রতিরূপের চারপাশে মোড়ানো হয়।

গাণিতিক ক্রিয়াকলাপ

পিএইচপি-তে বেশিরভাগ গণিত অপারেশনের পরিবর্তে বিল্ট-ইন ফাংশন আকারে করা হয়। তুলনামূলক অপারেটর ছাড়াও, পিএইচপি পাঁচটি সাধারণ গাণিতিক অপারেটর এবং সেইসাথে কিছু শর্টকাট অপারেটর অফার করে যা আপনাকে সংক্ষিপ্ত বৃদ্ধি, হ্রাস এবং অ্যাসাইনমেন্ট এক্সপ্রেশন তৈরি করতে দেয়।

পাটিগণিত অপারেশন

পাঁচটি মৌলিক গাণিতিক ক্রিয়াকলাপের মধ্যে রয়েছে যেগুলি সাধারণত যে কোনও চার-ফাংশন ক্যালকুলেটরে প্রয়োগ করা হয়, প্লাস মডুলো (%)। পাটিগণিত ক্রিয়াকলাপের একটি সংক্ষিপ্ত বিবরণ টেবিলে দেওয়া হয়েছে:

পাটিগণিত অপারেশন
অপারেশন বর্ণনা
+ এর দুটি অপারেন্ডের মানের সমষ্টি প্রদান করে
- যদি দুটি অপারেন্ড থাকে, তাহলে ডান অপারেন্ডের মান বামটির মান থেকে বিয়োগ করা হয়। যদি শুধুমাত্র একটি ডান হাতের অপারেন্ড থাকে, তবে অপারেশনটি বিপরীত চিহ্ন সহ সেই অপারেন্ডের মান প্রদান করে
* এর দুটি অপারেন্ডের মানের গুণফল প্রদান করে
/ বাম অপারেন্ডের মানকে ডান অপারেন্ডের মান দিয়ে ভাগ করার ফ্লোটিং পয়েন্ট ফলাফল প্রদান করে
% বাম অপারেন্ডের মান দ্বারা বিভক্ত একটি পূর্ণসংখ্যার অবশিষ্টাংশ প্রদান করে পরম মানসঠিক অপারেন্ড

একটি প্রোগ্রামে উপরে বর্ণিত প্রথম তিনটি গাণিতিক ক্রিয়াকলাপ (+, -, *) ব্যবহার করার সময়, আপনার বিবেচনা করা উচিত যে এই ক্রিয়াকলাপগুলি সম্পাদন করার সময়, দ্বি-নির্ভুল ফ্লোটিং-পয়েন্ট মান থেকে পূর্ণসংখ্যার মানগুলিতে টাইপ প্রচার ঘটে। এর অর্থ হ'ল যদি একটি অপারেশনের উভয় অপারেন্ড পূর্ণসংখ্যা হয়, তবে ফলাফলটি একটি পূর্ণসংখ্যা, এবং যদি অন্তত একটি অপারেন্ড একটি দ্বি-নির্ভুল ফ্লোটিং-পয়েন্ট সংখ্যা হয়, তবে ফলাফলটি একটি দ্বি-নির্ভুলতা ফ্লোটিং-পয়েন্ট। সংখ্যা ডিভিশন অপারেশন করার সময় একই ধরনের প্রচার ঘটে; উপরন্তু, একটি অতিরিক্ত প্রভাব রয়েছে যে ফলাফলটি একটি দ্বিগুণ-নির্ভুল ফ্লোটিং-পয়েন্ট সংখ্যায় পরিণত হয় যদি বিভাজনটি অবশিষ্টাংশ (সম্পূর্ণ) ছাড়া বাহিত না হয়।

পিএইচপি-তে মডুলো (%) অপারেশনটি পূর্ণসংখ্যার অপারেন্ড গ্রহণ করে এবং যখন এই ক্রিয়াকলাপটি দ্বি-নির্ভুল ফ্লোটিং-পয়েন্ট সংখ্যাগুলিতে প্রয়োগ করা হয়, তখন এই সংখ্যাগুলি প্রথমে পূর্ণসংখ্যাতে রূপান্তরিত হয় (ভগ্নাংশ বাদ দিয়ে)। এই ধরনের অপারেশনের ফলাফল সর্বদা একটি পূর্ণসংখ্যা।

বৃদ্ধি এবং হ্রাস অপারেশন

পিএইচপি-এর বেশিরভাগ সিনট্যাক্স সি থেকে উদ্ভূত, এবং সি প্রোগ্রামাররা তাদের সংক্ষিপ্ততার ভালবাসার জন্য পরিচিত এবং এতে গর্ববোধ করে। সি ল্যাঙ্গুয়েজ থেকে নেওয়া ইনক্রিমেন্ট এবং ডিক্রিমেন্ট অপারেটরগুলি $count = $count + 1 এর মত এক্সপ্রেশনগুলিকে আরও সংক্ষিপ্তভাবে উপস্থাপন করা সম্ভব করে, যা সাধারণত প্রায়শই প্রোগ্রামগুলিতে পাওয়া যায়।

ইনক্রিমেন্ট অপারেটর (++) অপারেশন দ্বারা প্রভাবিত ভেরিয়েবলের মানের সাথে একটি যোগ করতে ব্যবহৃত হয় এবং হ্রাস অপারেটর (--) সেই ভেরিয়েবলের মান থেকে একটি বিয়োগ করে।

এই দুটি অপারেশনের প্রতিটির দুটি জাত রয়েছে - প্রত্যয়(এই ফর্মে অপারেশন চিহ্নটি অপারেশন দ্বারা প্রভাবিত পরিবর্তনশীলের পরপরই স্থাপন করা হয়) এবং উপসর্গ(এই ফর্মে অপারেশন সাইনটি ভেরিয়েবলের ঠিক আগে স্থাপন করা হয় যেখানে অপারেশনটি প্রযোজ্য হয়)। উভয়েরই একটি ভেরিয়েবলের মান পরিবর্তনের একই পার্শ্বপ্রতিক্রিয়া আছে, কিন্তু প্রত্যয় এবং উপসর্গ অপারেটররা অভিব্যক্তি হিসাবে ব্যবহার করার সময় বিভিন্ন মান প্রদান করে। প্রত্যয় অপারেশন পরিচালনা করে যাতে এক্সপ্রেশনের মান ফেরত দেওয়ার পরে ভেরিয়েবলের মান পরিবর্তন করা হয় এবং প্রিফিক্স অপারেশন পরিচালনা করে যাতে মানটি প্রথমে পরিবর্তন করা হয় এবং তারপরে নতুন মানটি পরিবর্তনশীলে ফেরত দেওয়া হয়। অ্যাসাইনমেন্ট অপারেটরগুলিতে হ্রাস এবং বৃদ্ধি অপারেটর ব্যবহার করে এই পার্থক্য সনাক্ত করা যেতে পারে:

পিএইচপি কোড $count = 0; $result = $count++; প্রতিধ্বনি "$count++ বৃদ্ধির ফলাফল: ".$ ফলাফল।"
"; $count = 0; $result = ++$count; echo "++$count বৃদ্ধির ফলাফল: ".$ ফলাফল।"
";

নিম্নলিখিত বিবৃতি ব্রাউজার উইন্ডোতে নিম্নলিখিত আউটপুট উত্পাদন করে:

ইনক্রিমেন্ট অপারেশন

এই উদাহরণে, অপারেটর $result = $count++ সম্পূর্ণরূপে অপারেটরগুলির সমতুল্য:

পিএইচপি কোড $result = $count; $count = $count + 1;

এর সাথে, অপারেটর $result = ++$count নিম্নলিখিত অপারেটরগুলির সমতুল্য:

পিএইচপি কোড $count = $count +1; $result = $count;

অ্যাসাইনমেন্ট অপারেটর

ইনক্রিমেন্ট (এবং হ্রাস) অপারেটররা একটি ভেরিয়েবলের মানের সাথে একটি যোগ করার জন্য প্রয়োজনীয় কোডের পরিমাণ হ্রাস করে, কিন্তু কোডের পরিমাণ হ্রাস করে না যা একটি ভেরিয়েবলকে অন্য সংখ্যার সাথে তার মান যোগ করার ফলাফল বা অন্যান্য গাণিতিক ক্রিয়াকলাপের ফলাফল হিসাবে নির্ধারণ করে। . সৌভাগ্যবশত, পাঁচটি পাটিগণিত অপারেটরেরই সংশ্লিষ্ট অ্যাসাইনমেন্ট অপারেটর রয়েছে (+=, -=, *=, /=, এবং %=), যা আপনাকে সেই ভেরিয়েবলের মানের উপর একটি পাটিগণিত অপারেশনের ফলাফল একটি ভেরিয়েবলে বরাদ্দ করতে দেয়। সংক্ষিপ্ত অভিব্যক্তি। উদাহরণস্বরূপ, অপারেটর

পিএইচপি কোড $count = $count *3;

হিসাবে সংক্ষিপ্ত করা যেতে পারে

পিএইচপি কোড $count *= 3;

সহজ গণিত ফাংশন

শুধুমাত্র গাণিতিক ক্রিয়াকলাপগুলি ব্যবহার করে এমন একটি প্রোগ্রামের চেয়ে আরও জটিল করার পরবর্তী ধাপ হল সমস্ত ধরণের ফাংশন ব্যবহার করা। ফাংশনগুলি আপনাকে একটি সংখ্যার ধরন থেকে অন্য সংখ্যায় রূপান্তর করার মতো কাজগুলি করতে দেয় (ডেটা প্রকার নিবন্ধটি দেখুন) এবং সংখ্যার সেটে সর্বনিম্ন বা সর্বাধিক সংখ্যা খুঁজে বের করা। নিম্নলিখিত টেবিলটি সহজ গাণিতিক ফাংশন দেখায়:

সাধারণ পিএইচপি ম্যাথ ফাংশন
ফাংশন বর্ণনা
মেঝে() একটি একক প্রকৃত প্যারামিটার নেয় (সাধারণত একটি দ্বিগুণ-নির্ভুল ফ্লোটিং-পয়েন্ট সংখ্যা) এবং সবচেয়ে বড় পূর্ণসংখ্যা প্রদান করে যা সেই প্রকৃত প্যারামিটারের চেয়ে কম বা সমান (বৃত্তাকার নিচে)
ছাদ() এই ফাংশনের নাম সিলিং শব্দের সংক্ষিপ্ত রূপ। ফাংশনটি একটি একক প্রকৃত পরামিতি (সাধারণত একটি দ্বিগুণ-নির্ভুল ফ্লোটিং-পয়েন্ট সংখ্যা) নেয় এবং সেই প্রকৃত প্যারামিটারের চেয়ে বড় বা সমান ক্ষুদ্রতম পূর্ণসংখ্যা প্রদান করে (রাউন্ডিং আপ)
বৃত্তাকার() একটি একক প্রকৃত পরামিতি (সাধারণত একটি দ্বি-নির্ভুল ফ্লোটিং-পয়েন্ট সংখ্যা) নেয় এবং নিকটতম পূর্ণসংখ্যা প্রদান করে
abs() সংখ্যা মডিউল। যদি শুধুমাত্র সাংখ্যিক প্রকৃত প্যারামিটারের একটি ঋণাত্মক মান থাকে, তাহলে ফাংশনটি সংশ্লিষ্ট ধনাত্মক সংখ্যা প্রদান করে; যদি প্রকৃত প্যারামিটারটি ইতিবাচক হয়, তাহলে ফাংশনটি প্রকৃত পরামিতিটি নিজেই প্রদান করে
মিনিট() যেকোন সংখ্যক সাংখ্যিক প্রকৃত পরামিতি গ্রহণ করে (কিন্তু একটির কম নয়) এবং সমস্ত প্রকৃত পরামিতি মানের মধ্যে ক্ষুদ্রতমটি প্রদান করে
সর্বোচ্চ() যেকোন সংখ্যক সাংখ্যিক প্রকৃত পরামিতি গ্রহণ করে (কিন্তু অন্তত একটি) এবং সমস্ত প্রকৃত পরামিতি মানের মধ্যে বৃহত্তম প্রদান করে

উদাহরণস্বরূপ, নিম্নলিখিত এক্সপ্রেশনের ফলাফল 3 কারণ প্রতিটি ফাংশন কল এক্সপ্রেশনের মানও 3:

পিএইচপি কোড $ফলাফল = মিনিট(3, abs(-3), সর্বোচ্চ(বৃত্তাকার(2.7), সিল(2.3), মেঝে(3.9)));

এলোমেলো সংখ্যা তৈরি করা হচ্ছে

পিএইচপি ভাষা দুটি র্যান্ডম নম্বর জেনারেটর ব্যবহার করে (যাকে যথাক্রমে ফাংশন ব্যবহার করে বলা হয় রেন্ড()এবং mt_rand()) এই জেনারেটরগুলির প্রতিটি একই উদ্দেশ্যের তিনটি ফাংশনের সাথে যুক্ত: প্রাথমিক মান সেট করার ফাংশন ( srand()এবং mt_srand(), একটি এলোমেলো সংখ্যা পাওয়ার জন্য ফাংশন নিজেই এবং যে ফাংশনটি সবচেয়ে বড় পূর্ণসংখ্যার নমুনা দেয় যা জেনারেটর দ্বারা ফেরত দেওয়া যেতে পারে (( getrandmax()এবং mt_getrandmax()))। getrandmax() এবং mt_getrandmax() ফাংশন একটি মান প্রদান করে বৃহত্তম সংখ্যা, যা rand() বা mt_rand() দ্বারা ফেরত দেওয়া যেতে পারে, উইন্ডোজ প্ল্যাটফর্মে এই মানটি 32768-এ সীমাবদ্ধ।

Rand() ফাংশনে ব্যবহৃত নির্দিষ্ট সিউডোর্যান্ডম নম্বর জেনারেশন ফাংশনের পছন্দ নির্ভর করতে পারে পিএইচপি ইন্টারপ্রেটার কোন লাইব্রেরির সাথে সংকলিত হয়েছে তার উপর। বিপরীতে, mt_rand() জেনারেটর সর্বদা একই ছদ্ম-র্যান্ডম নম্বর জেনারেশন ফাংশন ব্যবহার করে (Mt হল Mersenne Twister-এর জন্য সংক্ষিপ্ত), এবং mt_rand() ফাংশনের অপারেশনাল ডকুমেন্টেশনের লেখক দাবি করেছেন যে এই ফাংশনটিও দ্রুত এবং "আরও বেশি Random" (একটি ক্রিপ্টোগ্রাফিক দৃষ্টিকোণ থেকে) Rand() এর চেয়ে। এই বিবৃতিগুলির সত্যতা নিয়ে আমাদের সন্দেহ করার কোন কারণ নেই, যে কারণে আমরা rand() এর পরিবর্তে mt_rand() ফাংশন ব্যবহার করতে পছন্দ করি।

কিছু প্ল্যাটফর্মে PHP-এর কিছু সংস্করণ ব্যবহার করার সময়, এটি প্রদর্শিত হয় যে rand() এবং mt_rand() ফাংশন আপাতদৃষ্টিতে গ্রহণযোগ্য এলোমেলো সংখ্যা তৈরি করে, এমনকি প্রথমে একটি বীজ সেট না করেও। কিন্তু এই ধরনের ছাপ বিশ্বাস করা উচিত নয়। প্রথমত, প্রারম্ভিক মান উল্লেখ না করে এলোমেলো সংখ্যা তৈরির জন্য যে প্রোগ্রামগুলি ফাংশন ব্যবহার করে সেগুলি সহজেই অন্য প্ল্যাটফর্মে স্থানান্তর করা যায় না এবং দ্বিতীয়ত, প্রাথমিক মান উল্লেখ না করে এই ফাংশনগুলির নির্ভরযোগ্য অপারেশন নিশ্চিত করা যায় না।

র্যান্ডম জেনারেটরের যেকোনো জন্য প্রাথমিক মান সেট করার একটি সাধারণ উপায় পিএইচপি নম্বর(mt_srand() বা srand() ফাংশন ব্যবহার করে) নিম্নরূপ:

পিএইচপি কোড mt_srand((ডাবল)মাইক্রোটাইম()*1000000);

এই অপারেটর জেনারেটরের প্রাথমিক মান সেট করে, শেষ পুরো সেকেন্ড গণনা করার পর থেকে এই সময়ের মধ্যে অতিবাহিত হওয়া মাইক্রোসেকেন্ডের সংখ্যার সমান। (এই বিবৃতিতে দ্বিগুণ করার জন্য কাস্টটি আসলে প্রয়োজনীয় কারণ মাইক্রোটাইম() ফাংশনটি একটি স্ট্রিং প্রদান করে, যা গুণনের ক্রিয়াকলাপে একটি পূর্ণসংখ্যা হিসাবে বিবেচিত হয় কিন্তু ফাংশনে পরামিতি পাস করার ক্রিয়াকলাপে নয়।) আমরা সুপারিশ করি যে পাঠক প্রবেশ করুন নির্দিষ্ট প্রারম্ভিক অপারেটর এমনকি যদি এই অপারেটরের উদ্দেশ্য তার কাছে সম্পূর্ণরূপে পরিষ্কার না হয়; বসানোর জন্য যথেষ্ট এই অপারেটরপ্রতি পিএইচপি পৃষ্ঠায়, শুধুমাত্র একবার, সংশ্লিষ্ট mt_rand() বা rand() ফাংশন ব্যবহার করার আগে, এবং এই অপারেটর নিশ্চিত করবে যে প্রারম্ভিক বিন্দু পরিবর্তন হয় এবং তাই প্রতিবার একটি ভিন্ন র্যান্ডম ক্রম তৈরি করে।

প্রাথমিক মান নির্ধারণের এই বিশেষ পদ্ধতিটি সেই বিশেষজ্ঞদের দ্বারা গভীরভাবে চিন্তা করা হয়েছিল যারা ছদ্ম-এলোমেলো সংখ্যাগুলি তৈরি করার সমস্ত সূক্ষ্মতাগুলি পুরোপুরি বোঝে, তাই সম্ভবত, এটি কোনও পৃথক প্রোগ্রামার দ্বারা কিছু নিয়ে আসার যে কোনও প্রচেষ্টার চেয়ে চিরতরে ভাল থাকবে। আরো "কঠিন"।

স্পষ্টতই, এই ছদ্ম-এলোমেলো সংখ্যা তৈরির ফাংশনগুলি শুধুমাত্র পূর্ণসংখ্যা প্রদান করে, তবে একটি প্রদত্ত পরিসর থেকে একটি র্যান্ডম পূর্ণসংখ্যা সহজেই একটি অনুরূপ ফ্লোটিং-পয়েন্ট নম্বরে রূপান্তরিত হতে পারে (বলুন, 0.0 থেকে 1.0 সহ সীমার মধ্যে একটি সংখ্যা) র্যান্ডের মতো একটি অভিব্যক্তি ব্যবহার করে () / getrandmax()। নির্দিষ্ট পরিসর তারপর স্কেল এবং প্রয়োজন হিসাবে স্থানান্তরিত করা যেতে পারে. নীচে একটি উদাহরণ:

পিএইচপি কোড // ধরা যাক আমাদের 100.0 থেকে 120.0 $ random = 100.0 + 20.0 * mt_rand() / mt_getrandmax(); প্রতিধ্বনি $এলোমেলো।"
"; // পূর্ণসংখ্যা তৈরি করুন (100 - 120); ইকো রাউন্ড ($ এলোমেলো);

এলোমেলো সংখ্যাগুলি তৈরি হয়েছে তা নিশ্চিত করতে এই কোডটি দিয়ে পৃষ্ঠাটি বেশ কয়েকবার রিফ্রেশ করার চেষ্টা করুন৷

গাণিতিক ধ্রুবক

পিএইচপি সংস্করণ 4.0-এ, ডকুমেন্টেশনে শুধুমাত্র একটি গাণিতিক ধ্রুবক বর্ণনা করা হয়েছে - M_PI (π-এর মান, একটি দ্বিগুণ-নির্ভুল ফ্লোটিং-পয়েন্ট সংখ্যা হিসাবে উপস্থাপিত)। এবং PHP 4.0.2 দিয়ে শুরু করে অনেক নতুন ধ্রুবক চালু করা হয়েছিল। এই নতুন ধ্রুবকের বেশিরভাগই π (বা এর গুণিতক), e (বা এর গুণিতক) এবং বর্গমূলের সাথে সম্পর্কিত; উপরন্তু, কিছু ধ্রুবক অন্যান্য ধরনের অন্তর্গত। কিন্তু পরবর্তী প্রকাশগুলিতে, বেশ কয়েকটি কারণে, ধ্রুবকের তালিকা আবার পূর্বনির্ধারিত গাণিতিক ধ্রুবকের একটি অপেক্ষাকৃত ছোট সংখ্যায় হ্রাস করা হয়েছিল:

পিএইচপি গাণিতিক ধ্রুবক
ধ্রুবক বর্ণনা
M_PI π
M_PI_2 π/2
M_PI_4 π/4
M_1_PI 1/π
M_2_PI 2/π
M_2_SQRTPI 2 / sqrt(π)
M_E e
M_SQRT2 sqrt(2)
M_SQRT1_2 1 / sqrt(2)
M_LOG2E log2(e)
M_LOG10E লগ(ই)
M_LN2 লগ (2)
M_LN10 লগ (10)

নম্বর বিন্যাস পরীক্ষা করা হচ্ছে

পিএইচপি ভাষা অনেকগুলি ফাংশন সরবরাহ করে যা আপনাকে সংখ্যার সঠিক উপস্থাপনা পরীক্ষা করতে দেয়। যদিও পিএইচপি-তে কঠোর টাইপ চেকিং নেই, তবে এটি সুপারিশ করা হয় যে আপনি যে ফলাফলগুলি পাবেন তার বৈশিষ্ট্যগুলির ভবিষ্যদ্বাণী করতে এবং সেইসাথে নির্বাচন করার জন্য আপনার কোডে এই কয়েকটি চেক প্রয়োগ করুন সেরা উপায়তাদের প্রক্রিয়াকরণ।

প্রথম এবং সহজ চেক ফাংশন ব্যবহার করা হয় is_numeric(). এই ধরনের অন্যান্য পরীক্ষার মতো, is_numeric ফাংশন একটি বুলিয়ান ফলাফল প্রদান করে - সত্য যদি এটিতে পাস করা প্যারামিটারটি যেকোনো ধরনের (স্বাক্ষরিত বা স্বাক্ষরবিহীন, পূর্ণসংখ্যা বা ভাসমান বিন্দু) বা একটি গাণিতিক অভিব্যক্তি যা একটি বৈধ সংখ্যাসূচক মান প্রদান করে।

ফাংশন ব্যবহার করে is_int()এবং is_floatআপনি একটি সংখ্যা একটি পূর্ণসংখ্যা বা একটি ভগ্নাংশ কিনা তা নির্ধারণ করতে পারেন. আরও দুটি চেক একটু বেশি জটিল: ফাংশন is_finite()এবং is_infinite()তাদের নামগুলি নির্দেশ করে (সংখ্যাটি সসীম বা অসীম কিনা) আপনাকে ঠিক সেই পরীক্ষাগুলি সম্পাদন করার অনুমতি দেয়। কিন্তু, কঠোরভাবে বলতে গেলে, এই ফাংশনগুলি প্রসারিত মানগুলির পরিসর প্রকৃত অসীমতা অন্তর্ভুক্ত করতে পারে না (এবং এটি কি এমনকি একটি সংখ্যার অসীম বড় মান আছে কিনা তা পরীক্ষা করা যেতে পারে?) পরিবর্তে, নির্দিষ্ট সিস্টেমে অনুমোদিত ফ্লোটিং পয়েন্ট মানগুলির সীমা ব্যবহার করা হয়।

নীচে এই ফাংশন ব্যবহার করার একটি উদাহরণ:

পিএইচপি কোড is_numeric(4); // true is_numeric(25 - 6); // true is_numeric("25"); // true is_numeric("25 - 6"); // মিথ্যা is_int(4); // true is_int(4.2); // মিথ্যা is_int("4"); // মিথ্যা - এই চেক is_numeric() is_float(4) এর চেয়ে কঠোর; // মিথ্যা is_float(4.0); // true is_float(M_PI); // সত্য

সংখ্যা সিস্টেমের রূপান্তর

ডিফল্টরূপে, পিএইচপি সাংখ্যিক মানগুলিকে বাহ্যিক থেকে অভ্যন্তরীণ প্রতিনিধিত্বে এগিয়ে এবং পিছনে রূপান্তর করতে বেস 10 ব্যবহার করে আপনি পিএইচপি দোভাষীকে বলতে পারেন যে বাহ্যিক উপস্থাপনা বেস 8 এ নির্দিষ্ট অক্টাল সংখ্যা ব্যবহার করে (এটি করার জন্য, আপনাকে অবশ্যই উপসর্গ দিতে হবে। অগ্রণী 0 সহ সংখ্যা), বা বেস 16-এ নির্দিষ্ট করা হেক্সাডেসিমেল সংখ্যা (এটি করার জন্য, আপনাকে অবশ্যই 0x এর সাথে সংখ্যাটি উপসর্গ করতে হবে)।

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

সংখ্যা সিস্টেম রূপান্তর ফাংশন
ফাংশন বর্ণনা
BinDec() একটি একক স্ট্রিং প্যারামিটার নেয় যা একটি বাইনারি পূর্ণসংখ্যা (একটি ভিত্তি 2 সংখ্যা) এবং সেই সংখ্যাটির ভিত্তি 10 স্ট্রিং উপস্থাপনা প্রদান করে
DecBin() BinDec() এর অনুরূপ, কিন্তু বেস 10 থেকে বেস 2 এ রূপান্তরিত হয়
অক্টোবর () BinDec() এর অনুরূপ, কিন্তু বেস 8 থেকে বেস 10 এ রূপান্তরিত হয়
DecOct() BinDec() এর অনুরূপ, কিন্তু বেস 10 থেকে বেস 8 এ রূপান্তরিত হয়
HexDec() BinDec() এর অনুরূপ, কিন্তু বেস 16 থেকে বেস 10 এ রূপান্তরিত হয়
DecHex() BinDec() এর অনুরূপ, কিন্তু বেস 10 থেকে বেস 16-এ রূপান্তরিত হয়
ভিত্তি_রূপান্তর() একটি স্ট্রিং প্যারামিটার (রূপান্তরিত করার জন্য পূর্ণসংখ্যার প্রতিনিধিত্ব করে) এবং দুটি পূর্ণসংখ্যা প্যারামিটার (মূল এবং পছন্দসই রেডিক্স) নেয়। রূপান্তরিত সংখ্যার প্রতিনিধিত্বকারী একটি স্ট্রিং প্রদান করে। এই লাইনে, 9 (10 থেকে 35) এর চেয়ে বড় সংখ্যাগুলি উপস্থাপন করা হয়েছে a-z চিহ্ন. মূল এবং কাঙ্ক্ষিত উভয় ঘাঁটি অবশ্যই 2-36 এর মধ্যে হতে হবে

সমস্ত সংখ্যা সিস্টেম রূপান্তর ফাংশন বিশেষ-উদ্দেশ্য ফাংশন যা একটি নির্দিষ্ট ভিত্তি থেকে অন্য সংখ্যায় রূপান্তর করে। একটি ব্যতিক্রম হল base_convert() ফাংশন, যা প্রারম্ভিক এবং ফলস্বরূপ বেস নির্দেশ করে নির্বিচারে প্যারামিটার গ্রহণ করে।

মনে রাখবেন যে সমস্ত সংখ্যা সিস্টেম রূপান্তর ফাংশন স্ট্রিং পরামিতি গ্রহণ করে এবং স্ট্রিং মান প্রদান করে, তবে আপনি দশমিক সংখ্যাসূচক প্যারামিটার ব্যবহার করতে পারেন এবং সঠিকভাবে টাইপ রূপান্তর সম্পাদন করতে পিএইচপি দোভাষীর উপর নির্ভর করতে পারেন। অন্য কথায়, DecBin("1234") এবং DecBin(1234) উভয়ই একই ফলাফল দেয়।

সূচক এবং লগারিদম

পিএইচপি ভাষাতে দুটি ধরণের স্ট্যান্ডার্ড সূচকীয় এবং লগারিদমিক ফাংশন অন্তর্ভুক্ত রয়েছে - বেস 10 এবং বেস ই-তে কাজ করার জন্য (যা টেবিলে দেখানো হয়েছে)।

PHP একটি প্রদত্ত পাওয়ারে e বাড়াতে একটি exp() ফাংশন প্রদান করে, তবে একটি প্রদত্ত পাওয়ার 10 বাড়াতে কোনো এক-প্যারামিটার ফাংশন নেই তবে, আপনি এর পরিবর্তে pow() ফাংশন ব্যবহার করতে পারেন, যা 10 প্রদান করে প্রথম প্যারামিটার হিসাবে।

আপনি এইভাবে প্রাপ্ত ফলাফলের পরিচয় যাচাই করে যাচাই করতে পারেন যে একই বেস সহ সূচকীয় এবং লগারিদমিক ফাংশনগুলি একে অপরের বিপরীত।

পিএইচপি কোড $test_449 = 449.0; $test_449 = pow(10, exp(log(log10($test_449)))); প্রতিধ্বনি "test_449 = $test_449"; // test_449 = 449

ত্রিকোণমিতিক ফাংশন

পিএইচপি ভাষা প্রদান করে স্ট্যান্ডার্ড সেটমৌলিক ত্রিকোণমিতিক ফাংশন, সাধারণ তথ্য যা সারণিতে দেওয়া আছে:

ত্রিকোণমিতিক ফাংশন
ফাংশন বর্ণনা
পাই() এটি কোন প্যারামিটার নেয় না এবং π (3.1415926535898) এর আনুমানিক মান প্রদান করে। M_PI ধ্রুবকের সাথে বিনিময়যোগ্যভাবে ব্যবহার করা যেতে পারে
পাপ() রেডিয়ানে একটি সাংখ্যিক পরামিতি গ্রহণ করে এবং প্যারামিটারের সাইনকে একটি দ্বিগুণ নির্ভুলতা ফ্লোটিং পয়েন্ট সংখ্যা হিসাবে প্রদান করে
cos() রেডিয়ানে একটি সাংখ্যিক প্যারামিটার নেয় এবং একটি দ্বিগুণ নির্ভুলতা ভাসমান বিন্দু সংখ্যা হিসাবে প্যারামিটারের কোসাইন প্রদান করে
ট্যান() রেডিয়ানে একটি সাংখ্যিক পরামিতি গ্রহণ করে এবং একটি দ্বিগুণ নির্ভুলতা ফ্লোটিং পয়েন্ট সংখ্যা হিসাবে প্যারামিটারের স্পর্শক প্রদান করে
asin() একটি সাংখ্যিক প্যারামিটার নেয় এবং রেডিয়ানে প্যারামিটারের আর্কসাইন প্রদান করে। ইনপুটগুলি অবশ্যই -1 এবং 1 এর মধ্যে হতে হবে (এই পরিসরের বাইরে ইনপুট গ্রহণকারী ফাংশন একটি NAN ফলাফলে পরিণত হয়)। ফলাফল -π/2 থেকে π/2 পর্যন্ত
acos() একটি সাংখ্যিক প্যারামিটার নেয় এবং রেডিয়ানে প্যারামিটারের আর্ক কোসাইন প্রদান করে। ইনপুটগুলি অবশ্যই -1 থেকে 1-এর মধ্যে হতে হবে (এই সীমার বাইরে ইনপুট গ্রহণকারী ফাংশনটি একটি NAN ফলাফলে পরিণত হয়৷ ফলাফলগুলি 0 থেকে π এর মধ্যে থাকে
আতান() একটি সাংখ্যিক প্যারামিটার নেয় এবং রেডিয়ানে প্যারামিটারের আর্কটেনজেন্ট প্রদান করে। ফলাফল -π/2 থেকে π/2 পর্যন্ত

নীচে "স্ট্যান্ডার্ড" কোণের জন্য ত্রিকোণমিতিক ফাংশন গণনা করার জন্য একটি টেবিল কম্পাইল করার একটি উদাহরণ:

পিএইচপি কোড ফাংশন প্রদর্শন_ত্রিকোণমিতি($func_array, $input_array) ( // ফাংশন হেডার ইকো " ";) প্রতিধ্বনি ""; // টেবিলের বাকি অংশটি প্রিন্ট করুন foreach($input_array হিসাবে $input) ( echo " "; foreach($func_array $func হিসাবে) ( প্রতিধ্বনি " ";) প্রতিধ্বনি "";) প্রতিধ্বনি "
অর্থ/ফাংশন$func
".sprintf("%.4f",$input)।""; printf("%4.4f", $func($input)); echo "
"; ) প্রদর্শন_ত্রিকোণমিতি(অ্যারে("sin", "cos", "tan"), array(0, M_PI / 6, M_PI / 3, M_PI / 2, M_PI));

পিএইচপি-তে ত্রিকোণমিতিক ফাংশন ব্যবহারের একটি উদাহরণ

খুব বড় (কিন্তু অসীম নয়) স্পর্শক মান প্রাপ্তির কারণ হল যে হরগুলি তাত্ত্বিকভাবে শূন্য হওয়া উচিত, কিন্তু বাস্তবে বৃত্তাকার ত্রুটির কারণে শূন্য থেকে কিছুটা আলাদা।

নির্বিচারে নির্ভুলতা গণনা (BC ফাংশন ব্যবহার করে)

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

অবশ্যই, এই ডেটা প্রকারের সঠিক মান পরিসীমা আর্কিটেকচারের উপর নির্ভর করতে পারে সার্ভার কম্পিউটার, কিন্তু পূর্ণসংখ্যার মানগুলি সাধারণত -2 31 -1 থেকে 2 31 -1 পর্যন্ত হতে পারে এবং দ্বিগুণ-নির্ভুলতা ফ্লোটিং-পয়েন্ট সংখ্যাগুলি প্রায় 13 থেকে 14 দশমিক সংখ্যার নির্ভুলতার সাথে সংখ্যাগুলিকে উপস্থাপন করতে পারে। অন্যদিকে, এমন সমস্যা সমাধানের জন্য যেগুলির জন্য বিস্তৃত পরিসরের প্রতিনিধিত্ব বা বৃহত্তর নির্ভুলতার প্রয়োজন হয়, পিএইচপি প্রদান করে নির্বিচারে নির্ভুলতা গাণিতিক ফাংশন(বিসি ফাংশনও বলা হয়, ইউনিক্স-ভিত্তিক নির্ভুল নির্ভুল কম্পিউটিং ইউটিলিটির নামে নামকরণ করা হয়েছে)।

এটি হতে পারে যে পিএইচপি দোভাষীর সংকলনে নির্বিচারে নির্ভুলতা ফাংশন অন্তর্ভুক্ত করা হয়নি, বিশেষত যদি ব্যবহারকারী নিজেই সংকলনটি করে থাকে, কারণ এর জন্য ব্যবহারকারীকে জানতে হবে যে কনফিগারেশন পর্যায়ে একটি চেকবক্স অন্তর্ভুক্ত করা প্রয়োজন। পরামিতি --enable-bcmath. নির্দিষ্ট ফাংশন উপলব্ধ কিনা তা পরীক্ষা করতে, bcadd("1","1") অভিব্যক্তিটি মূল্যায়ন করার চেষ্টা করুন। আপনি যদি একটি ত্রুটির বার্তা পান যা একটি অনির্ধারিত ফাংশন বলে, তাহলে আপনাকে পিএইচপি ইন্টারপ্রেটার পুনরায় কনফিগার করতে হবে এবং এটি পুনরায় কম্পাইল করতে হবে।

BC ফাংশন প্যারামিটার এবং রিটার্ন মান হিসাবে স্থির-দৈর্ঘ্যের সাংখ্যিক প্রকারের পরিবর্তে স্ট্রিং ব্যবহার করে। যেহেতু পিএইচপি-তে স্ট্রিংগুলির দৈর্ঘ্য শুধুমাত্র আকার দ্বারা সীমাবদ্ধ উপলব্ধ মেমরি, গণনায় ব্যবহৃত সংখ্যা যেকোনো দৈর্ঘ্যের হতে পারে। মৌলিক গণনাগুলি দশমিক আকারে করা হয় এবং অনেকটা সেরকম যা একজন ব্যক্তি পেন্সিল এবং কাগজ দিয়ে করতে পারেন (যদি তিনি খুব দ্রুত কাজ করতে পারেন এবং ধৈর্য ধরতে পারেন)। BC পূর্ণসংখ্যা ফাংশনগুলি সুনির্দিষ্ট এবং আপনাকে যতগুলি সংখ্যা প্রয়োজন ততগুলি ব্যবহার করার অনুমতি দেয়, যখন ফ্লোটিং-পয়েন্ট ফাংশনগুলি একটি নির্দিষ্ট সংখ্যক দশমিক স্থানের জন্য নির্ভুল গণনা সম্পাদন করে। বিসি ফাংশন সম্পর্কে সাধারণ তথ্য নীচের টেবিলে দেওয়া হয়েছে:

গাণিতিক ফাংশননির্বিচারে নির্ভুলতা সহ (BC ফাংশন)
ফাংশন বর্ণনা
bcadd() সংখ্যার প্রতিনিধিত্বকারী দুটি স্ট্রিং প্যারামিটার এবং একটি স্কেল ফ্যাক্টর নির্দেশ করে একটি ঐচ্ছিক পূর্ণসংখ্যা প্যারামিটার গ্রহণ করে। স্কেল ফ্যাক্টর নির্দেশ করে প্যারামিটার দ্বারা নির্ধারিত ফলাফলে দশমিক স্থানের সংখ্যা সহ একটি স্ট্রিং হিসাবে প্রথম দুটি প্যারামিটারের যোগফল প্রদান করে। যদি স্কেল ফ্যাক্টর নির্দেশকারী প্যারামিটারটি নির্দিষ্ট করা না থাকে, তাহলে ডিফল্ট স্কেল ফ্যাক্টর ব্যবহার করা হয়
bcsub() bcadd() এর অনুরূপ, এটি ব্যতীত এটি প্রথম থেকে দ্বিতীয় প্যারামিটার বিয়োগ করার ফলাফল প্রদান করে
bcmui() bcadd() এর অনুরূপ, এটি তার পরামিতি গুণ করার ফলাফল প্রদান করে
bcdiv() bcadd() এর অনুরূপ, এটি ব্যতীত এটি প্রথম প্যারামিটারটিকে দ্বিতীয় দ্বারা ভাগ করার ফলাফল প্রদান করে
bcmod() প্রথম প্যারামিটারটিকে দ্বিতীয় দ্বারা ভাগ করার মডুলাস (অবশিষ্ট) প্রদান করে। কারণ রিটার্ন মান একটি পূর্ণসংখ্যা, ফাংশন একটি স্কেল ফ্যাক্টর নির্দেশক একটি প্যারামিটার গ্রহণ করে না
bcpow() প্রথম প্যারামিটারটিকে দ্বিতীয় প্যারামিটার দ্বারা নির্দিষ্ট করা পাওয়ারে উত্থাপন করে। ফলাফলে দশমিক স্থানের সংখ্যা স্কেল ফ্যাক্টর দ্বারা নির্ধারিত হয়, যদি একটি নির্দিষ্ট করা হয়
bcsqrt() ঐচ্ছিক স্কেল ফ্যাক্টরের মান দ্বারা নির্ধারিত দশমিক স্থানের সংখ্যা সহ প্যারামিটারের বর্গমূল দেখায়
bcscale() BC ফাংশনে পরবর্তী কলের জন্য ডিফল্ট স্কেল ফ্যাক্টর সেট করে

এই ফাংশনগুলির বেশিরভাগই শেষ পরামিতি হিসাবে একটি ঐচ্ছিক স্কেল ফ্যাক্টর (একটি পূর্ণসংখ্যা) নেয় যা ফলাফলের কত দশমিক স্থান থাকা উচিত তা নির্দিষ্ট করে। যদি এই প্যারামিটারটি নির্দিষ্ট করা না থাকে, ডিফল্ট স্কেল ফ্যাক্টরটিকে স্কেল ফ্যাক্টর হিসাবে ব্যবহার করা হয়, যা bcscale() ফাংশনটিকে কল করে সেট করা যেতে পারে। এই ডিফল্ট মানের জন্য ডিফল্ট মান (অর্থাৎ, স্ক্রিপ্টটি bcscale() কল না করলে যে মান ব্যবহার করা হয়) সেটিও php.ini ইনিশিয়ালাইজেশন ফাইলে সেট করা যেতে পারে।

সঠিকভাবে পূর্ণসংখ্যার গাণিতিক ক্রিয়াকলাপ সম্পাদন করতে একটি নির্বিচারে নির্ভুলতা ফাংশন ব্যবহার করার একটি উদাহরণ নীচে দেওয়া হল। নিম্নলিখিত কোড নির্বাহ করা হচ্ছে:

পিএইচপি কোড জন্য ($x = 1; $x< 25; $x++) { echo "$x$x= ".bcpow($x, $x)।"
"; }
BC ফাংশন ব্যবহার করে জ্যোতির্বিজ্ঞানের পরিমাণের সঠিক গণনা

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

অ্যারে ফর্ম প্রক্রিয়াকরণ 1 2 3 4 5 6 7 8 9 10