یادگیری php - متغیر ها و انواع مقادیر

در زبان php برای تعریف متغیر از علامت $ به همراه ترکیب آن با ـ و حروف a-z و اعداد استفاده می شود. البته اولین حرف تعریف نام متغیر عدد نمی تواند باشد. برای مثال

$name , $_username, $_data1

نمونه هایی از تعریف متغیر می باشند.

برای تعریف متغیر ها در زبان php بر خلاف زبان های c, c++, java نیاز به تعریف نوع داده متغیر نمی باشد و با توجه به داده ای که به متغیر نسبت داده می شود نوع آن نیز تغییر می کند . برای پیدا کردن نوع متغیر شما می توانید از توابع

is_type(), var_dump(), gettype()

استفاده کنید. البته در زمانی که نیاز به مقایسه در مورد نوع متغیر می باشد بهتر است از is_type() استفاده نما یید.

نکته: منظور از تابع is_type() توابع

is_int(), is_string(), is_float() , ....

می باشد.

مثال:

<?php
$a = 1; // $a is an integer
echo gettype($a);
$a = ‘Hello World’;// $a is a string
echo gettype($a);
$a = 2,5; // $a is a float
echo gettype($a);
?>


----------آدرس گروه تلگرام:t.me/php_plus_gpآدرس کانال آموزشی تلگرام:‌t.me/php_plus-------------

انواع داده هایی که زبان php از آن ها پشتیبانی می کند شامل :

1. boolean
$a = true;
2. integer
$a = 12;
3. float
$a = 2,5;
4. string
$a = “hello world”
5. array
$a = [1, 2, 3];
.
.
.
6. object
7. callable 
8. iterable
9. resource
10. NULL

----------آدرس گروه تلگرام:t.me/php_plus_gpآدرس کانال آموزشی تلگرام:‌t.me/php_plus-------------

نوع داده ای boolean

در زبان php نوع داده ای boolean برای تعریف یک ارزش حقیقی استفاده می شود. و ساده ترین نوع در این زبان می باشد. برای تعریف یک مقدار از این نوع از ثابت های True, false استفاده می شود. هر دوی این مقادیر غیر حساس(case-insensitive) به متن می باشد و شما می توانید با حروف بزرگ و یا کوچک نیز ان را تعریف کنید.

<?php
$booleanVariable = true;// or TRUE, True, tRuE,false, FALSE,False, …
?>

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

<?php
$a = 1;
$b = 2; 
if($a == $b){
echo ‘Hi’;
}
?>

زمانی که می خواهید یک مقدار را به نوع boolean تبدیل کنید می توانید این کار را به صورت زیر انجام دهید که اصطلاحا به آن type casting می گویند.

<?php
$a = 1;
$b = (bool) $a;
var_dump($b); // return bool(true) 
?>

در هنگام تبدیل انواع مقادیر به نوع boolean مقادیر زیر به false تبدیل خواهند شد

• مقدار false

• مقدار 0 و 0-

• مقدار 0.0و0.0-

• یک رشته خالی (“”) و یا رشته با مقدار "0”

• یک آرایه ی خالی به صورت ()array یا []

• مقدار NULL

• یک شی خالی SimpleXML

همه ی مقادیر دیگر به مقدار TRUE تبدیل خواهد شد.

 <?php
var_dump((bool)"");//bool(false)
var_dump((bool)1);//bool(true)
var_dump((bool)-2);//bool(true)
var_dump((bool)"foo");//bool(true)
var_dump((bool)2.3e5);//bool(true)
var_dump((bool)array(12));//bool(true)
var_dump((bool)array());//bool(false)
var_dump((bool)"false");//bool(true)
?>  

----------آدرس گروه تلگرام:t.me/php_plus_gpآدرس کانال آموزشی تلگرام:‌t.me/php_plus-------------

نوع integer

هر عددی که از مجموعه اعداد صحیح در نوع آن برابر با integer خواهد بود.

در هنگام تعریف اعداد صحیح شما می توانید آن را در مبنای 2(باینری)، ۸ (اوکتال)، 16( هگزادسیمال) تعریف کنید و برای مشخص کردن اعداد منفی از عملگر – استفاده نمایید.

اعداد در مبنای 2 با 0b و اعداد در مبنای 8 با 0 و اعداد در مبنای 16 با 0x شروع می شوند.

اندازه و مقداری که نوع integer می تواند از آن نگهداری کند وابسته به پلتفرمی است که در آن اجرا خواهد شد. برای پلت فرم های 32 بیت این عدد برابر با 2 میلیارد و برای سیستم های 64 بیت به جز ویندوز برابر با 9E18 می باشد.

<?php
$a= 1234;//decimalnumber
$a = -123;//a negativenumber
$a = 0123;//octal number (equivalent to 83 decimal)
$a = 0x1A;//hexadecimal number (equivalent to 26decimal)
$a = 0b11111111; //binary number (equivalent to 255 decimal)
?> 

در صورتی که مقداری که برای integer در نظر گرفتیم یا نتیجه ی یک عملیات بیشتر از ظرفیت آن باشد آن را تبدیل float می کند. در زبان php نتیجه ی عمل تقسیم همیشه برابر با float خواهد بود و اگر نیاز داشتیم که آن را به integer تبدیل کنیم می توانیم آن را کست کنیم یا اینکه از تابع round() استفاده نماییم.

<?php
$large_number = 9223372036854775807;
var_dump($large_number);//int(9223372036854775807)
$large_number = 9223372036854775808;
var_dump($large_number);//float(9.2233720368548E+18)
$million=1000000;
$large_number=50000000000000 * $million;
var_dump($large_number);//float(5.0E+19)
?> 


در تبدیل انواع دیگر به int با استفاده از کست کردن مقادیر به صورت زیر خواهد بود

1. مقدار boolean: مقدار false برابر با 0 و مقدار true برابر با 1 خواهد بود.

2. مقدار resource: مقدار یکتایی که php به هر resource نسبت داده می شود را به خود میگیرد.

3. مقدار float: مقدار به سمت پایین گرد خواهد شد( برای مثال 3.2 برابر با 3 خواهد بود.) در صورتی که مقدار بزرگتر از ظرفیت آن باشد برابر با undefined خواهد بود.

4. مقدار NULL: برابر با صفر خواهد بود.