آموزش انواع داده در PHP

آموزش انواع داده در PHP

انواع داده در PHP – در اکثر زبان های برنامه نویسی نوع داده ها بخش پایه ای و اساسی هر زبانی است ، نوع داده همانطور که از اسمش پیداست به ما در درک داده بدست آمده کمک می کند .

همچنین با تعیین نوع داده اطلاعاتی به کامپایلر و مفسر می دهیم .

از آن جایی که PHP یک زبان loosly typed هست ( یعنی مثل زبان خانواده c نیاز نیست برای نوع داده آن تعریف کنیم ) نمونه کد در زبان C :

int number = 25



به طور کلی 8 نوع داده در PHP وجود دارد :

1- bool
2- int
3- float ( هم در نظر گرفته می شود double )
4- string
5- null
6- resource
6- array
7- object


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

$fnum = 1.9996;

echo gettype($fnum); // double



نوع داده bool یا منطقی

این نوع داده فقط می تواند 2 مقدار مختلف داشته باشد true یا false که می توان 0 یا 1 هم به صورت مفهومی در نظر گرفت .

$bool = true; 
$bool = false;


نوع داده های دیگر که با false == است

echo false == "0"; // 1
echo false == 0; // 1
echo false == 0.00000; // 1
echo false == -0.000000; // 1
echo false == ""; // 1
echo false == array(); // 1


نوع داده های دیگر که با true == است

echo true == 3; // 1
echo true == 0.0000000000001; // 1
echo true == -0.0000000000001; // 1
echo true == "false"; // 1

لاین 4 : دقت داشته باشید که هر رشته ای که خالی نباشد یا “0” نباشد true در نظر گرفته می شود .


نوع داده int یا عدد صحیح

بیشترین استفاده را در بین داده های عددی دارد که بر اساس معماری سیستم عامل می تواند فرق داشته باشد که در 64 بیتی :

کمترین مقدار : 9223372036854775808-
حداکثر مقدار : 9223372036854775807

همچنین با استفاده از ثابت های زیر می توانید کمترین و حداکثر مقدارعدد صحیح ( int ) را پیدا کنید .

echo PHP_INT_MIN; // -9223372036854775808
echo PHP_INT_MAX; // 9223372036854775807

دقت داشته باشید که اگر مقدار عدد صحیح از محدوده خود خارج شود به نوع داده float یا همان double تبدیل می شود . نمونه کد زیر :

$int = 9223372036854775807;

echo gettype($int); // integer

$int++;

echo gettype($int); // double


انجام عملیات های ریاضی با رشته و عدد صحیح

در صورتی که بخواهیم یک عملیات ریاضی با رشته و عدد انجام دهیم PHP سعی می کند که اعداد را از رشته استخراج کرده و کارمان را پیش ببرد ، دلیل استفاده از تابع intval برای جلوگیری از خطای :

Warning: A non-numeric value encountered in

echo 1 + intval("bia 2 code"); // 1
echo 1 + intval("2 code bia 1399"); // 3

اما این واکشی اطلاعات از رشته هم شرایط خود را دارد یعنی رشته مان در صورتی که با عدد شروع شود فقط قسمت اول رشته که اگر شامل عدد باشد را پیدا می کند همانطور که در لاین 1 کد بالا مشاهده می کنید نتوانست عددی برگرداند .


امکان استفاده از نماد علمی در اعداد وجود دارد

$int_number = 3e2;

echo $int_number; // 300


استفاده از نماد علمی در رشته عدد صحیح

#3e3 => 3 * 1000 → 3000
echo 8 + "3e3" . "\n"; // 3008

#3e-3 => 3 / 1000 → 0.003
echo 8 + "3e-3" . "\n"; // 8.003


نوع داده double) float) یا اعداد اعشاری

اعداد اعشاری که نمونه آن را در کد پایین مشاهده می کنید :

$float_number = 1.999999;


در زمان مقایسه اعداد اعشاری از تابع round استفاده کنید

اگر کد زیر را اجرا کنید :

$a = 10 - 6.1;
$b = 3.9;

echo $a == $b; // false

متوجه خواهید شد که PHP این 2 عدد را مساوی نمی داند این به خاطر این است که متغیر a در زمان بدست آوردن حاصل نتیجه را تقریبا اینگونه برمی گرداند :

10 - 6.1 = 3.900000000000000000001

پس طبیعی است که آن را مساوی ندانسته و false برگرداند . با تابع round این 2 متغیر a و b را می توان به یک شکل روند کرد مثل :

echo round($a , 3) == round($b , 3); // 1


استفاده از نماد عملی با اعداد اعشاری

echo 1.234 * "1e5"; // 123400


نوع داده string یا رشته ای

$string = "hi rapid coders";


ادغام دیگر نوع های داده در رشته

$number = 3.14;

$string = "number : {$number}"; // number : 3.14


دقت داشته باشید که اگر مثل کد زیر از ” استفاده کنید امکان تبدیل آن داده به رشته وجود ندارد

$string = 'number : {$number}'; // number : {$number}


نوع داده null ( یک نوع داده ویژه )

به طور کلی اگر از متغیری که آن را تعریف نکردیم استفاده کنیم null دریافت می کنیم مثل :

echo @$undefined_var === null; // 1

همچنین امکان تعریف آن به صورت معمول هم وجود دارد :

$null_data_type = null;


مواردی که Null با دیگر داده ها مساوی خواهد بود

echo false == null; // 1
echo null == 0; // 1
echo null == 0.00000; // 1
echo null == -0.000000; // 1
echo null == ""; // 1
echo null == array(); // 1


نوع داده resource ( یک نوع داده ویژه )

این نوع داده زمانی به وجود می آید که از منابع مثل فایل های سیستمی ، mysql ، socket استفاده می کنیم مثل :

$fp = fopen("index.php" , "r");

echo gettype($fp); //resource


نوع داده array ( یک نوع داده ترکیبی )

این نوع داده می تواند ترکیبی از هر نوع دیگر داده ها باشد برای جدا کردن هر مقدار از , استفاده می کنیم کد نمونه :

$list = array(98 , 3.14 , true , null , new stdClass , "rapid" , "code" , "." , "ir");

var_dump($list);

/*
array(9) {
  [0]=>
  int(98)
  [1]=>
  float(3.14)
  [2]=>
  bool(true)
  [3]=>
  NULL
  [4]=>
  object(stdClass)#1 (0) {
  }
  [5]=>
  string(5) "rapid"
  [6]=>
  string(4) "code"
  [7]=>
  string(1) "."
  [8]=>
  string(2) "ir"
}
*/


نوع داده object ( یک نوع داده ترکیبی )

هر چیزی که از کلاس ساخته می شود یک object در نظر گرفته می شود مثل :

class User{
	public $username = "";

	public function __construct($username){
		$this->username = $username;
	}

	public function show_username(){
		return $this->username;
	}

}

$user = new User("arman120");

echo gettype($user); // object

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

ارسال نظر

جهت استفاده از کد حتما از تگ pre استفاده نمایید .

contact us