انواع داده ها در PHP

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

در مقاله‌ی آماده سازی محیط کار با PHP درباره‌ی مقدمات PHP صحبت کردیم و متوجه شدیم که در چه پروژه‌هایی استفاده شده است، مقداری که به یک متغیر PHP انتساب داده می‌شود، می‌تواند انواع داده‌های متفاوت، مثلا یک رشته‌ی ساده یا نوع عددی و یا انواع داده‌ای پیچیده‌تر همانند آرایه‌ها و یا اشیاء باشد. انواع داده‌ها در PHP به 8 نوع داده‌ی اصلی تقسیم می‌شوند: اعداد صحیح، اعداد اعشاری، رشته‌ها، آرایه‌ها، اشیاء، boolean ،resource و NULL. در ادامه به تشریح کامل‌تر هر کدام از موارد ذکر شده می‌پردازیم. در مقاله‌‌ی انواع داده‌ها در PHP همراه ما باشید.

اعداد صحیح یا Integer

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

برای تعریف کردن یک متغیر در زبان PHP از علامت $ در ابتدای نام متغیرها استفاده می‌شود، سعی کنید در انتخاب اسامی متغیرها از کلمات با معنی استفاده نمایید تا بعدا کاربرد هر کدام را به یاد داشته باشید.

<?php 
$a = 123; // decimal number
 var_dump($a);
 echo "<br>"; 
$b = -123; // a negative number
 var_dump($b); 
echo "<br>";
 $c = 0x1A; // hexadecimal number
 var_dump($c); 
echo "<br>";
 $d = 0123; // octal number
 var_dump($d); ?>

در کد بالا 4 متغیر تعریف شده است که به هر کدام مقادیر متفاوتی انتساب داده شده است.

انواع داده‌ها در PHP:

خروجی عدد مثبت

int(123)

خروجی عدد منفی

int(-123)

خروجی hexadecimal

int(26)

خروجی octal

int(83)

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

رشته‌ها (Strings)

رشته‌ها، دنباله‌ای از کاراکترها هستند، که هر کاراکتر معادل یک بایت است. یک رشته می‌تواند شامل حروف، اعداد و کاراکترهای ویژه باشد که می‌تواند حداکثر تا مقدار 2 گیگابایت (2147483647 بایت) بزرگ شود. ساده‌ترین راه برای تعریف یک رشته، قرار دادن آن داخل تک کوتیشن می‌باشد.

<?php
$a = 'Hello world!';
echo $a;
echo "<br>";
 
$b = "Hello world!";
echo $b;
echo "<br>";
 // در مثال زیر زمانی که بخواهیم از تک کوتیشن داخل رشته استفاده کنیم
// از علامت \ استفاده میکنیم و سپس تک کوتیشن
$c = 'Stay here, I\'ll be back.';
echo $c;
?>

در قطعه کد بالا سه متغیر متفاوت با حالت‌های متفاوت تعریف رشته‌ها، تعریف شده‌ است.

خروجی کدهای بالا به شرح ذیل می‎باشد:

Hello world!

Hello world!

Stay here, I'll be back.

اعداد اعشاری

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

<?php 
$a = 1.234; 
var_dump($a); 
echo "<br>"; 
$b = 10.2e3;
 var_dump($b); 
echo "<br>"; 
$c = 4E-10; 
var_dump($c); ?>

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

float(1.234)

float(10200)

float(4.0E-10)

Booleanها در PHP

بولین‌ها شبیه یک سوییچ هستند که امکان قبول دو مقدار True و False یا 0 و 1 را دارند.

<?php
// Assign the value TRUE to a variable
$show_error = true;
var_dump($show_error);
?>

خروجی به شرح ذیل می‌باشد:

bool(true)

آرایه‌ها 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 ایندکس‌گذاری می‌شوند به این معنا که شما هر مقداری به آرایه بدهید از اولین مقدار ایندکس 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];

در مثال بالا ما ایندکس 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

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

<?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 را بدون ایندکس وارد کرده‌ایم و همان‌طور که قابل مشاهده است از صفر ایندکس‌گذاری شده‌اند.

اشیاء (Objects)

Object یک نوع داده است که داده‌ها و اطلاعات مربوط به نحوه‌ی پردازش آن‌ها را در خود ذخیره می‌کند. آبجکت یک نمونه از کلاس است. هر آبجکت به متدها و ویژگی‌های کلاس پدرش دسترسی دارد. در زیر مثالی از نحوه‌ی تعریف کلاس و آبجکت برای آن را مشاهده می‌کنید:

<?php
// تعریف کلاس
class greeting{
    // properties
    public $str = "Hello World!";
    
    // methods
    function show_greeting(){
        return $this->str;
    }
}
 
// ساخت شی از کلاس بالا
$message = new greeting;
var_dump($message);
?>

NULL در PHP

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

<?php
$a = NULL;
var_dump($a);
echo "<br>";
?>

خروجی کد بالا به صورت زیر خواهد بود.

NULL

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

<?php
// متغیر زیر دارای مقدار NULL است 
$var1=NULL;
// ولی متغیر زیر نشانگر این است که این متغیر هیچ مقداری نگرفته است
$var2 = "";

Resource‌ها در PHP

Resource یک متغیر خاص است که منبعی برای یک منبع خارجی است. Resourceها معمولا برای باز کردن فایل‌ها و ارتباط با بانک اطلاعاتی استفاده می‌شوند.

<?php
// بازکردن یک فایل برای خواندن
$handle = fopen("note.txt", "r");
var_dump($handle);
?>
<?php
// اتصال به بانک اطلاعاتی با تنظیمات پیش فرض
$link = mysqli_connect("localhost", "root", "");
var_dump($link);
?>

جمع‌بندی:

در این مقاله توضیح دادیم که برای تعریف متغیر‌ها در PHP باید در ابتدای متغیر از علامت $ استفاده کنیم و سپس به بررسی نوع داده‎‌های عددی پرداختیم و آموختیم که‌ متغیرهای عددی (Integer) می‌توانند دارای مقادیر مثبت، منفی باشند و سپس در ادامه درباره‌ی اعداد اعشاری در زبان PHP توضیح دادیم که در PHP برای تعریف اعداد اعشاری یا float کافی است فقط عدد اعشار مورد نظر را در متغیر مقداردهی کنید.در ادامه به معرفی نوع داده‌ای رشته‌ای پرداختیم و توضیح دادیم که رشته‌ها، دنباله‌ای از کاراکترها هستند. در خصوص booleanها نیز شرح دادیم که بولین‌ها شبیه یک سوییچ هستند که امکان قبول دو مقدار True و False یا 0 و 1 را دارند.سپس به نحوه‌ی تعریف و فراخوانی آرایه‌ها در PHP پرداختیم و اشاره کردیم آرایه دو نوع دارد آرایه‌های اندیسی و آرایه‌های انجمنی، که به تشریح و ارائه‌ی مثال برای هر دو نوع آرایه‌ها پرداختیم.در نهایت به توضیح انواع داده‌ای اشیاء و NULL و Resource پرداختیم.

امیدواریم که مقاله انواع داده‌ها در PHP برای شما مفید باشد. شما می‌توانید سوالات خود را در رابطه با انواع متغیرها در بخش نظرات با ما در میان بگذارید.

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

چه امتیازی به این مقاله می دید؟
نویسنده سامان عزیزی
PHP مثل مسواک می‌مونه. شما هر روز از مسواک استفاده می‌کنید و کارتون رو راه می‌اندازه و در عین‌ حال ابزار ساده‌ای هم هست. دیگه چی‌ می‌خواین؟

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

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

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