انواع متغیرها و عملگرها در PHP - آموزش مقدماتی PHP - قسمت دوم

دسته بندی: برنامه نویسی
زمان مطالعه: 12 دقیقه
۳۱ فروردین ۱۳۹۹

انواع متغیرها و عملگرها در PHP:

در مقاله‌ی آماده سازی محیط کار با PHP درباره‌ی مقدمات PHP صحبت کردیم و متوجه شدیم که در چه پروژه‌هایی استفاده شده است، در قدم‌های بعدی با XAMPP و ویرایشگر VS Code آشنا شدیم و نحوه‌ی نصب آن‌ها را آموختیم و با قواعد و قوانین تعریف متغیر و چگونگی تعریف و استفاده از متغیرهای رشته‌ای آشنا شدیم. در قسمت دوم از مقاله‌ی آموزش مقدماتی PHP قصد داریم انواع متغیرها و عملگرها در PHP  را معرفی نماییم.

فهرست محتوای این مقاله

متغیرهای عددی یا Integer

متغیرهای عددی (Integer) حاوی انواع اعداد مانند اعداد مثبت، منفی، اعشاری هستند و در هنگام کار با زبان‌‌های برنامه‌نویسی برای ما  بسیار کاربردی هستند، تعریف کردن یک متغیر از نوع عددی در زبان PHP بسیار آسان است و مانند انواع متغیرهای دیگر تعریف می‌شوند.

<?php

$age = 18;

در کد بالا ما متغیری با اسم age داریم که سن را درون خود ذخیره‌سازی می‌کند و در مقابل آن با عملگر مساوی عدد 18 را برای متغیر در نظر گرفته‌ایم.

نکته‌ای که باید توجه کنید این است که شما در تعریف متغیرهای عددی، مقدار را بین ' (تک کوتیشن) یا " (دابل کوتیشن) قرار نمی‌دهید و اگر چنین کاری را انجام دهید آن متغیر به نوع رشته تبدیل می‌شود و دیگر نمی‌توان بر روی آن‌ها عملیات ریاضی را انجام داد.

اعداد اعشار

در PHP برای تعریف اعداد اعشار یا float کافی است فقط عدد اعشار مورد نظر را در متغیر مقداردهی کنید و لازم به کار اضافه نیست چون همان‌طور که گفته شد PHP با تشخیص نوع داده‌ی ورودی، نوع متغیر را تعیین می‌کند، به مثال پایین توجه کنید.

<?php

$math = 18.5;

مثال بالا کاملا گویاست که چگونه یک متغیر از نوع اعشار را ایجاد کنیم.

مثالی از متغیرهای عددی

تا الان که با متغیرهای عددی آشنا شدیم بیایید یک مثال از محاسبات و اولویت علمگرهای محاسبه‌ای بزنیم.

<?php

$math = 18.5;
$chemistry = 17;
$physics = 15;

در بالا ما چند متغیر عددی تعریف کردیم که برای مثال هر کدام نمره‌ی درس‌های یک دانش آموز را دارد و ما می‌خواهیم میانگین این نمرات را به دست بیاوریم .

<?php 

$math = 18.5; 
$chemistry = 17; 
$physics = 15;

$avg = ($math + $chemistry + $physics) / 3;

echo $avg;

 

16.833333333333

در بالا ما یک متغیر دیگر به اسم avg تعریف کرده‌ایم که قرار است میانگین نمرات را داشته باشد، اگر دقت کرده باشید ما متغیرهایی که دارای نمرات بودند را داخل پرانتز گذاشته‌ایم، هر چیزی که بین پرانتز قرار می‌گیرد دارای اولویت بالاتری نسبت به عملگرهای دیگر است و در اینجا ما اول نمرات را با هم جمع کرده‌ایم و بعد آن‌ها را تقسیم بر تعدادشان که 3 است کرده‌ایم.

اما شاید اینجا یک مشکل دیده شود که میانگین نمرات ما، اعشار زیادی دارد، برای کوتاه کردن آن به دو رقم اعشار یا هر تعداد رقم اعشار که شما مدنظرتان است می‌توانید از تایع زیر استفاده کنید.

<?php

$math = 18.5;
$chemistry = 17;
$physics = 15;

$avg = ($math + $chemistry + $physics) / 3;

echo round($avg, 2);
16.83

به تابع round می‌توانید عددی که اعشار دارد را بدهید و در ورودی دوم آن تعداد ارقام اعشار آن را می‌دهید که در این جا دو رقم اعشار است. اگر به طور پیش فرض به آن چیزی ندهید، تابع با توجه به رقم اعشار آن را به سمت عدد بالاتر یا پایین‌تر گرد می‌کند. برای مثال.

<?php

$math = 18.5;
$chemistry = 17;
$physics = 15;

$avg = ($math + $chemistry + $physics) / 3;

echo round($avg);
17

در اینجا خروجی عدد 17 شده است چون رقم اعشار عدد بزرگی است و به سمت بالاتر نزدیک است. نکته‌ای که باید اینجا توجه کنید این است که اگر عدد اعشار شما بالاتر از نیم یا 5 باشد به سمت بالا و اگر کم‌تر از نیم یا 5 باشد به سمت پایین گرد می‌شود. در ادامه درباره‌ی عملگرها به طور کامل صحبت می‌کنیم.

متغیرهای آرایه ای یا Array 

متغیرهای آرایه‌ای از مهم‌ترین متغیرهای هر زبان برنامه‌نویسی به حساب می‌آیند و باید آن‌ها را به خوبی درک کنیم و بتوانیم از آن‌ها به درستی استفاده کنیم. بگذارید یک تعریف کلی از آرایه‌ها برای شما کنیم.

آرایه‌ها در کل می‌توانند مجموعه‌ای از داده‌ها را در خود ذخیره سازی کنند، اینکه می‌گوییم مجموعه‌ای از داده‌ها منظورمان این است که تعداد زیادی مقدار از هر نوع آن می‌توان ذخیره سازی کرد. برای مثال ما در متغیرهای عددی یا رشته یاد گرفته‌ایم که فقط در آن‌ها می‌توانیم اعداد یا رشته ذخیره سازی کنیم اما در آرایه‌ها این‌گونه نیست و شما می‌توانید از هر نوع داده‌ای درون یک یا چند آرایه داشته باشید.

در PHP ما دو نوع آرایه داریم که نوع اول آن ایندکس‌های پیش‌فرض دارند که به آن‌ها Indexed array گفته می‌شود و نوع دوم آن، ما خودمان به صورت دستی ایندکس‌های آن را مشخص می‌کنیم که به آن‌ها Associative array گفته می‌شود که به معنی آرایه‌های انجمی می‌باشد.

ساخت آرایه از نوع Indexed array

اما آرایه‌ها چگونه تعریف می‌شوند، تعریف کردن آرایه در PHP به دو روش امکان‌پذیر است، از روش اول شروع می‌کنیم.

<?php

$arr = ['7learn','google',24,76,'amazon'];

روش اول قرار دادن آکولاد [ ] باز و بسته و قرار دادن مقادیر بین آن‌ها است همان‌طور که می‌بینید، مقادیر از نوع عدد و رشته وارد کرده‌ایم. برای مقداردهی هنگام تعریف متغیر حتما باید مقادیر با کاما ( , ) از یکدیگر جدا شوند وگرنه دچار خطا می‌شویم.

روش دوم برای تعریف آرایه استفاده از تابع array است، به مثال پایین توجه کنید.

<?php

$arr = array('7learn','google',24,76,'amazon');

تفاوتی بین این دو روش احساس نمی‌شود و بستگی به راحتی شما دارد که از کدام روش برای تعریف آرایه‌ها استفاده کنید.

روش فراخوانی آرایه‌های indexed array

آرایه‌ها از 0 ایندکس گذاری می‌شوند به این معنا که شما هر مقداری به آرایه بدهید از اولین مقدار ایندکس صفر، دومین ایندکس 1 و تا آخر مقادیری که شما تعریف کرده‌اید به صورت خودکار ایندکس گذاری می‌شود و ما می‌توانیم با استفاده از ایندکس به مقادیر آرایه دسترسی داشته باشیم. اگر می‌خواهید که مقادیر آرایه را همراه با ایندکس‌شان مشاهده کنید می‌توانید از توابع زیر استفاده کنید.

<?php

$arr = array('7learn','google',24,76,'amazon');

print_r($arr);
Array ( [0] => 7learn [1] => google [2] => 24 [3] => 76 [4] => amazon )

 

در اینجا از تابع print_r برای چاپ تمامی مقادیر آرایه استفاده کرده‌ایم. به این نکته توجه داشته باشید که آرایه‌ها را نمی‌توان با echo چاپ کرد چون echo برای آرایه‌ها ساخته نشده است.

همچنین ما می‌توانیم از تابعی دیگری به نام ()vardump برای چاپ آرایه‌ها و دریافت جزییات بیشتر استفاده کنیم، به مثال پایین توجه کنید.

<?php

$arr = array('7learn','google',24,76,'amazon');

var_dump($arr);
array(5) { [0]=> string(6) "7learn" [1]=> string(6) "google" [2]=> int(24) [3]=> int(76) [4]=> string(6) "amazon" }

در خروجی بالا علاوه بر نمایش ایندکس و مقدار آن نوع و اندازه‌ی مقدار آرایه را نیز مشخص کرده است.

تا الان که با ایندکس‌های آرایه آشنا شدیم نوبت به آن رسیده است که آن‌ها را فراخوانی کنیم.

<?php 

$arr = array('7learn','google',24,76,'amazon'); 

echo $arr[0];
7learn

شاید اولین چیزی که توجه شما را جلب کند این است که ما قرار نبود از echo برای چاپ آرایه‌ها استفاده کنیم اما باید به شما بگوییم که وقتی شما یک ایندکس از آرایه را فراخوانی می‌کنید اگر یک عدد یا رشته باشد همان‌طور که می‌دانید می‌توان آن را با echo چاپ کرد.

در آرایه‌ها برای فراخوانی کردن یک ایندکس از آن کافیست نام متغیر آرایه را بیاوریم و با آکولاد باز و بسته [ ] شماره ایندکس را بین آن قرار دهیم.

$arr[1];

مانند مثال بالا که ما ایندکس یک را از آرایه arr فراخوانی کرده‌ایم. توجه داشته باشید که اگر ایندکس وارد شده خارج بازه‌ی آرایه باشد دچار خطا می‌شویم، برای مثال آرایه‌ی پایین 5 عضو دارد و 4 ایندکس (ایندکس‌ها از 0 شروع می‌شوند) که اگر ما ایندکس 10 را فراخوانی کنیم با این که وجود ندارد به خطای زیر مواجه می‌شویم.

<?php

$arr = array('7learn','google',24,76,'amazon');

echo $arr[10];
Notice: Undefined offset: 10 in C:\xampp\htdocs\7learn\index.php on line 5

خطای بالا گفته است که چنین ایندکسی وجود ندارد و این خطا در این مسیر و در خط 5 رخ داده است.

ساخت آرایه از نوع Associative array

ساخت آرایه‌های Associative یا انجمنی بسیار آسان است فقط کافیست ایندکس آن را به صورت دلخواه ایجاد کنیم، به مثال پایین توجه کنید.

<?php

$arr = array('first_name' => 'Amir', 'last_name' => 'Salehi', 'age' => 18);

در آرایه‌ی بالا ما اطلاعات یک فرد را در آرایه ذخیره کرده‌ایم، برای اینکه بتوانیم خودمان ایندکس یک آرایه را تعریف کنیم اگر ایندکس مدنظر ما یک رشته است باید آن را در میان یک ' ( تک کوتیشن) یا " ( دابل کوتیشن ) قرار دهیم و اگر عدد است که به راحتی آن عدد را می‌نویسیم و با علامت <= (مساوی و بزرگتری) به مقدار آن اشاره می‌کنیم و مقدار را جلوی آن قرار می‌دهیم که می‌تواند عدد، رشته، آرایه باشد و برای تعریف ایندکس بعدی از کاما ( , ) استفاده می‌کنیم.

اگر با تابع print_r آرایه را چاپ کنیم تمامی ایندکس‌ها با مقادیرشان که تعریف کرده‌ایم قابل مشاهده هستند.

<?php

$arr = array('first_name' => 'Amir', 'last_name' => 'Salehi', 'age' => 18);

print_r($arr);
Array ( [first_name] => Amir [last_name] => Salehi [age] => 18 )

روش فراخوانی آرایه‌‌های انجمنی یا Associative array

روش فراخوانی آرایه‌های انجمنی دقیقا مثل آرایه‌های ایندکسی می‌باشد، در اینجا نیز شما باید نام ایندکسی کهبه صورت دستی تعریف کرده‌اید را بیاورید، به مثال پایین توجه کنید.

<?php

$arr = array('first_name' => 'Amir', 'last_name' => 'Salehi', 'age' => 18);

echo $arr['first_name'];
Amir

آرایه‌های ایندکسی و انجمنی در کنار هم

شاید برایتان سوال باشد که آیا می‌توان این دو آرایه را با یکدیگر داشت؟ باید به شما بگوییم بله، ولی شاید دوباره از خود سوال بپرسید که ایندکس گذاری‌ها چگونه انجام می‌شود؟

وقتی که ما دو نوع آرایه را در یک آرایه داریم ایندکس‌هایی که ما خودمان تعریف کرده‌ایم که کاملا مشخص است اما مقادیری که به آن‌ها ایندکس نداده‌ایم به صورت خودکار از شماره صفر ایندکس گذاری می‌شوند، به مثال پایین توجه کنید.

<?php

$arr = array('first_name' => 'Amir', 'last_name' => 'Salehi', 'age' => 18, 'amazon', 43, 'google');

print_r($arr);
Array ( [first_name] => Amir [last_name] => Salehi [age] => 18 [0] => amazon [1] => 43 [2] => google )

در مثال بالا ما در آخر آرایه سه مقدار amazon، 43، google را بدون ایندکس وارد کرده‌ایم و همان‌طور که قابل مشاهده است از صفر ایندکس گذاری شده‌اند.

عملگرها در PHP

عملگرها در متغیرها، شروط، حلقه‌ها بسیار استفاده می‌شوند که شناختن و نحوه‌ی کار کردن آن‌ها ضروری است، اکثر شماها با عملگرهای ریاضی مثل جمع ( + )، تفریق ( - )، ضرب ( * )، تقسیم ( / ) آشنا هستید، این همه‌ی عملگرها در PHP نیست، در ادامه به همه‌ی آن‌ها می‌پردازیم.

عملگرهای حسابی

با استفاده از عملگرهای حسابی یا محاسباتی می‌توان محاسبات ریاضی را انجام داد.

عملگرهای محاسبه‌ ای - PHP

در عملگرهای بالا اکثر آن‌ها را می‌شناسید که ما در اینجا فقط دو مورد آخر را توضیح می‌دهیم، عملگر % که باقی‌مانده‌ی دو عدد را محاسبه می‌کنند، به مثال زیر توجه کنید.

<?php

$x = 2;
$y = 5;

echo $x % $y;
2

و عملگر ** عدد سمت چپ عملگر را به توان عدد سمت راست عملگر می‌رساند، به مثال زیر توجه کنید.

<?php

$x = 2;
$y = 5;

echo $x ** $y;
32

عملگرهای Assignment

از عملگرهای Assignment برای مقداردهی به یک متغیر استفاده می‌شود.

عملگرهای Assignment - PHP

واگذارنده به این معنا که مقدار درون متغیر سمت راست را درون متغیر سمت چپ می‌ریزیم، به مثال اول که در عکس بالا آمده است توجه کنید که ما مقداری که درون متغیر y وجود دارد را درون x می‌ریزیم.

در مثال‌های بعدی عکس بالا کاملا گویاست که Assignment کردن به صورت کوتاه شده درآمده است، به مثال دوم نگاه کنید که می‌خواهیم مقدار درون متغیر y را با x جمع کنیم و آن را درون خود x بریزیم، شکل اول این‌گونه ( x = x + y ) است اما شکل جمع شده‌ی آن به صورت ( x += y ) در آمده است که اینجا علامت + به پشت علامت = آمده است و باعث شده است که x دو بار تکرار نشود.

در کل می‌توان گفت که وقتی که یک مقدار قرار است با یک مقدار دیگری عملیات واگذاری و یا محاسبه انجام دهند می‌توانیم از شکل خلاصه شده‌ی آن‌ها استفاده کنیم.

عملگرهای Comparison یا مقایسه‌ای

عملگرهای مقایسه از پر کاربردترین عملگرهای هر زبان‌ برنامه‌نویسی به حساب می‌آیند برای اینکه در شرط‌ها بسیار مورد استفاده قرار می‌گیرند.

عملگرهای مقایسه ای - PHP

با عملگر == (مساوی مساوی) می‌توان بررسی کرد که آیا مقدار سمت راست متغیر با مقدار سمت چپ آن برابر است؟

با عملگر === (سه مساوی) می‌توان بررسی کرد که آیا مقدار و نوع متغیر سمت راست با مقدار سمت چپ آن برابر است؟

با عملگرهای =! و <> می‌توان نابرابر بودن مقادیر  سمت راست و چپ را مقایسه کرد.

با عملگر ==! می‌توان نابرابری و نوع متغیر را مقایسه کرد.

با عملگر < می‌توان بزرگ‌تر بودن مقدار سمت (تا یکی کمتر از خودش) چپ عملگر را با مقدار سمت راست آن بررسی کرد.

با عملگر > کاملا کار برعکس عملگر بالا را انجام می‌دهد یعنی مقدار کوچک‌تر (تا یکی کمتر از خودش) آن.

با عملگرهای =< می‌توان بزرگ‌تر مساوی (تا خود آن عدد) و  => کوچک‌تر مساوی (تا خود آن عدد)  را مقایسه کرد.

و در نهایت عملگر <=> که به آن کشتی فضایی می‌گویند و در PHP 7 اضافه شده است و سه خروجی 1، 0، 1- دارد، اگر عدد سمت راست آن از سمت چپ بزرگ‌تر باشد به عنوان خروجی 1 را برمی‌گرداند، اگر مساوی باشد 0 و اگر مقدار سمت راست بزرگ‌تر از چپ باشد 1- را برمی‌گرداند.

برای آشنا شدن با بقیه‌ی عملگرها در PHP می‌توانید به سایت W3 School - PHP Operators سر بزنید، در ضمن از این عملگرها در ادامه‌ی این دوره استفاده خواهیم کرد و برای شما کاملا قابل درک خواهد بود.

ویدیوی کامل آموزش انواع متغیرها و عملگرها در PHP:

آموزش انواع متغیرها و عملگرها در PHP را می‌توانید در این ویدیو مشاهده نمایید.

 

جمع بندی:

در مقاله‌ی انواع متغیرها و عملگرها در PHP، ما به ادامه‌ی مبحث قبلی از متغیرها پرداختیم و با متغیرهای عددی (Integer) و متغیرهای آرایه‌ای (Array) که جزء مهم‌ترین متغیرها بودند آشنا شدیم و به درکی از انواع عملگرها رسیدیم در قسمت بعدی این مقاله قرار است به شرط‌ها و حلقه‌ها بپردازیم و با این دو عنصر مهم هر زبان برنامه‌نویسی آشنایی پیدا کنیم، پس با ما در قسمت بعدی از این مقاله همراه باشید.

اگر به یادگیری بیشتر در زمینه‌ی PHP علاقه داری، با شرکت در دوره‌ی آموزشی متخصص PHP در کمتر از یکسال به یک متخصص PHP تبدیل می‌شوی که آماده‌ی استخدام، دریافت پروژه، کسب درآمد و یادگیری مباحثی مثل لاراول هستی.

چه امتیازی به این مقاله می دید؟
نویسنده سامان عزیزی

نظرات کاربران

اولین دیدگاه این پست رو تو بنویس !

ارسال دیدگاه
خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :