همانطور که گفته شد متغیرها وسیلهای برای ذخیره سازی مقادیر درون خود هستند. مقادیری که در متغیر ذخیره میشود میتواند از هر نوع داده ای باشد.
انواع داده ها در زبان php
- رشته یا string
- اعداد صحیح یا integer
- اعداد اعشاری یا float یا double
- آرایه یا array
- آبجکت یا object
- بولین یا boolean
- نال یا null
- منابع یا resource
نوع داده رشته
مجموعهای از کاراکترهای متنی که در کنار یکدیگر قرار میگیرند و باید داخل کوتیشن نوشته شوند رشته یا string گفته میشود.
کوتیشن میتواند تک یا جفت باشد.
مثال:
1 2 3 4 5 6 7 8 9 10 11 |
<?php $x = "Hello world!"; $y = 'learn php in designer javan'; echo $x; echo "<br>"; echo $y; ?> /* Hello world! learn php in designer javan */ |
نوع داده اعداد صحیح یا integer
اعداد در php دارای انواع مختلفی میباشد یکی از آن نوع ها صحیح است. عدد صحیح عددی است که رقم اعشار ندارد و میتواند عددی مثبت،منفی یا ۰ باشد. این عدد صحیح میتواند عددی بین رقم زیر باشد:
1 |
-2,147,483,648 - 2,147,483,647 |
قوانین کلی اعداد صحیح
یک عدد صحیح باید حداقل یک رقم عدد درون خود داشته باشد.
یک عدد صحیح باید بر مبنای ده دهی یا دسیمال(بر پایه ۱۰)، اعداد اکتال(بر پایه ۸)، اعداد دودویی (بر پایه ۲) و اعداد هگزادسیمال (بر پایه ۱۶) باشد.(به اعداد معمولی دسیمال میگویند).
یک عدد صحیح میتواند مثبت یا منفی باشد
عدد صحیح نباید یک رقم اعشار داشته باشد.
مثال:
1 2 3 4 5 |
<?php $x = 5985; var_dump($x); ?> //integer(5985); |
نوع داده اعداد اعشاری یا float
یک عدد اعشاری عددی است که دارای حداقل یک رقم اعشار می باشد. همچنین عددی که بصورت نماد نمایشی یا exponential form هستند اعداد اعشاری میباشند. رقم اعشار از سمت چپ شمارش شده و قرار میگیرد.
مثال:
1 2 3 4 5 |
<?php $x = 10.365; var_dump($x); ?> //float(10.365); |
نوع داده بولین یا boolean
بولین یک نوع داده است که دارای دو مقدار true یا false میباشد. از این نوع داده بیشتر در دستورات شرطی استفاده میشود.
مثال:
1 2 |
$x = true; $y = false; |
نوع داده آرایه یا array
متغیرهای معمولی درون خود تنها یک مقدار با هر نوع داده ای را ذخیره میکنند.
حال گاهی اوقات نیاز است که به جای یک مقدار درون متغیر چندین مقدار را ذخیره کنیم. مثال این حالت بدین شکل است که فرض کنید شما قصد دارید انواع نان خودرو را درون متغیر ذخیره کنید در حالت عادی باید برای هر نام خودرو یک متغیر تعریف کنید که این باعث افزایش متغیرها و زیاد شدن کد میشود و منطقی نیست برای رفع این مشکل نوع داده آرایه معرفی شد که میتوانست درون یک متغیر چندین مقدار را ذخیره کند. مقادیری که درون آرایه قرار میگیرد میتوانند از هر نوع داده ای باشند.
مثال:
1 2 3 4 5 |
<?php $cars = array("Volvo","BMW","Toyota"); var_dump($cars); ?> //array(0=>string(Volvo), 1=>string(BMW), 3=>string(Toyota)); |
در نسخه جدید php میتوانید به جای نوشتن array() از براکت باز و بسته استفاده کنیم.
مثال:
1 2 3 4 5 |
<?php $cars = ["Volvo","BMW","Toyota"]; var_dump($cars); ?> //array(0=>string(Volvo), 1=>string(BMW), 3=>string(Toyota)); |
نوع داده آبجکت یا object
یکی دیگر از انواع داده ها در زبان php آبجکت ها می باشند که آنها هم قادر به ذخیره سازی چندین مقدار در درون خود هستند.
از آبجکت ها بیشتر در برنامه های شی گرایی یا oop استفاده می شود. دو مفهوم اصلی و پایه ای برنامه های شی گرایی کلاس ها و آبجکت ها هستند.
کلاس ها یک قالب کلی هستند که آبجکت ها از روی آن ها ساخته و نمونه سازی می شود.
زمانی که اشیا از روی کلاس هایشان ساخته میشوند در اولین قدم تمامی خصوصیات و متدهایشان را از کلاس خود به ارث میبرند. اما این به معنی این نیست که این خصوصیات هم دارای مقادیر یکسان هستند بلکه مقدار هر خصوصیت در یک آبجکت با همان خصوصیت در آبجکت دیگری از لحاظ مقدار متفاوت است.
بیایید یک مثال را باهم بررسی کنیم.
فرض کنید کلاسی به نام car دارید که یک کلاس کلی برای تمامی خودروها است. کلاس ها حکم یک نقشه را دارند که آبجکت ها از روی آن ساخته میشوند.
خودروها بصورت عمومی دارای خصوصیات مشترکی هستند و میتوانند خصوصیات منحصربفردی داشته باشند. خصوصیات عمومی آنها عبارتند از:
- رنگ خودرو
- مدل خودرو
- و…
ما میتوانیم درون کلاس متغیرهایی به نام های color$ و model$ تعریف کنیم که این خصوصیات نگه دارنده مقادیر مرتبط درون خود هستند.
حال زمانی که آبجکت از روی کلاس ایجاد میشود این خصوصیات به ارث برده میشود و شما میتوانید بسته به نوع خودرو مقدار رنگ و مدل را تغییر دهید.
حال یک نکته مهم و سوالی وجود دارد و آن این است چطور میتوان در همان لحظه که آبجکت ساخته میشود این خصوصیات خود یا به ارث برده شده مقدار دهی کرد.
جواب: کلاس ها درون خود تابعی دارند به نام سازنده یا constructor دارند که نامش conatruct__() است البته باید این تابع را بسازیم. در هنگام ایجاد آبجکت این تابع فراخوانی و مقادیر خصوصیت ها تنظیم می شود.
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php class Car { public $color; public $model; public function __construct($color, $model) { $this->color = $color; $this->model = $model; } public function message() { return "My car is a " . $this->color . " " . $this->model . "!"; } } $myCar = new Car("black", "Volvo"); echo $myCar -> message(); echo "<br>"; $myCar = new Car("red", "Toyota"); echo $myCar -> message(); ?> /* My car is a black Volvo My car is a red Toyota */ |
درباره کلاس ها و آبجکت ها در جلسه دیگر و دوره شی گرایی بیشتر توضیح خواهم داد.
نوع داده نال یا null
یکی از نوع داده خاص که تنها یک مقدار دارد نال یا پوچ یا هیچ است.
متغیری که تعریف شده اما مقداری ندارد نوع داده اش نال است.
در زبان جاوااسکریپت اگر مقداری به متغیر ندهیم نوعش undefined است.
می توانیم با تخصیص مقدار نال مقدار یک متغیر را خالی کنیم.
مثال:
1 2 3 4 5 6 |
<?php $x = "Hello world!"; $x = null; var_dump($x); ?> //Null |
نوع داده منابع یا resource
این نوع داده در واقع نوع داده نیست. این ذخیره کننده ای برای توابع و منابع خارجی به PHP است.
یکی از نمونه های استفاده از منابع صدا زدن پایگاه داده است.