انواع داده ها در PHP
رشته ها، اعداد صحیح، اعداد با ممیز شناور، بولین، آرایه ها، اشیاء، تهی (NULL)
رشته ها در PHP
رشته، یک توالی از کاراکترهاست، مانند "!Hello world"
هر متنی داخل کوتیشن، می تواند رشته باشد. می توانید از کوتیشن (') یا دابل کوتیشن (") استفاده کنید:
مثال (انواع داده ها در PHP)
$x = "Hello world!";
echo $x;
echo "<br>";
$x = 'Hello world!';
echo $x;
?>
خروجی کد بالا:
Hello world!
اعداد صحیح در PHP
اعداد بدون ممیز، صحیح هستند.
قوانین اعداد صحیح:
- یک عدد صحیح، حداقل باید یک رقم داشته باشد.
- یک عدد صحیح، نمی تواند شامل کاما یا فاصله باشد.
- یک عدد صحیح، نباید ممیز داشته باشد.
- یک عدد صحیح، می تواند منفی یا مثبت باشد.
- یک عدد صحیح، می تواند در سه فرمت مشخص شود: decimal (بر مبنای 10)، hexadecimal (بر مبنای 16 - با پیشوند 0x) و octal (بر مبنای 8 - با پیشوند 0)
در مثال زیر، فرمت های مختلف اعداد صحیح نشان داده شده است. با استفاده از تابع ()var_dump، می توانید مقدار و نوع متغیر را مشخص نمایید:
مثال (انواع داده ها در PHP)
$x = 5985;
var_dump($x);
echo "<br>";
$x = -345; // negative number
var_dump($x);
echo "<br>";
$x = 0x8C; // hexadecimal number
var_dump($x);
echo "<br>";
$x = 047; // octal number
var_dump($x);
?>
خروجی کد بالا:
int(-345)
int(140)
int(39)
اعداد با ممیز شناور در PHP
اعداد با ممیز شناور، اعدادی هستند که شامل یک ممیز هستند یا اعدادی که در قالب نماد ریاضی نشان داده می شوند.
در مثال زیر، اعداد اعشاری در فرمت های مختلف، نشان داده شده است. با استفاده از تابع ()var_dump، می توانید مقدار و نوع متغیر را مشخص نمایید:
مثال (انواع داده ها در PHP)
$x = 10.365;
var_dump($x);
echo "<br>";
$x = 2.4e3;
var_dump($x);
echo "<br>";
$x = 8E-5;
var_dump($x);
?>
خروجی کد بالا:
float(2400)
float(8.0E-5)
داده های Boolean در PHP
مقدار داده های Boolean می تواند TRUE یا FALSE باشد.
$y=false;
داده ی Boolean، معمولاً در تست مشروط استفاده می شود. در بیاموزهای بعدی درباره ی تست مشروط بیشتر خواهید آموخت.
آرایه ها در PHP
آرایه ها انواع خاصی از متغیرها به حساب می آیند که می توانند چندین داده را در قالب یک نام ذخیره کنند.
در مثال زیر، ابتدا یک آرایه ایجاد شده و سپس با استفاده از تابع ()var_dump، مقدار و نوع هر سلول آرایه مشخص شده است:
مثال (انواع داده ها در PHP)
$cars=array("Volvo","BMW","Toyota");
var_dump($cars);
?>
خروجی کد بالا:
درباره آرایه ها در بیاموزهای بعدی توضیحات بیشتری را خواهید دید.
اشیاء (object) در PHP
یک شیء نوع داده ای است که هم داده ها و هم اطلاعات مربوط به نحوه پردازش آنها را ذخیره می کند.
یک شیء در PHP، باید بطور صریح اعلان شود.
ابتدا باید کلاس شیء اعلان شود، برای این کار، از کلمه کلیدی class استفاده نمایید. یک کلاس، ساختاری است که می تواند شامل چندین property و method باشد.
برای دسترسی به property و methodهای یک کلاس، باید از آن کلاس یک نمونه بسازید:
مثال (انواع داده ها در PHP)
class My_class
{
public $name="Amir";
function SayHello()
{
print "Hello My Name is $this->name";
}
}
$obj=new My_Class();
$obj->SayHello();
?>
خروجی کد بالا:
در بیاموزهای بعدی، درباره ی اشیاء بیشتر توضیح داده خواهد شد.
مقدار NULL در PHP
با استفاده از مقدار NULL، می توان نشان داد که یک متغیر مقدار ندارد. NULL تنها مقدار ممکن از نوع داده NULL است.
مقدار NULL، خالی یا پر بودن یک متغیر را نشان می دهد. همچنین بهتر است بدانید که در پایگاه داده بین NULL و رشته خالی تفاوت وجود دارد.
می توان متغیرها را با تنظیم مقدار NULL خالی کرد:
مثال (انواع داده ها در PHP)
$x="Hello world!";
$x=null;
var_dump($x);
?>
خروجی کد بالا:
برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 29785
دیدگاهها
ضمن عرض سلام و خسته نباشی
آموزش انواع داده ها در PHP عالی بود.
با سلام.
سایت خیلی خوبی دارین.
ولی در مورد هر موضوع کم توضیح میدین.
مثلا من به عنوان یه نفر که تازه شروع کردم به یادگیری php هیچی از مبحث object که بالا گفتین نفهمیدم.
همچنین در مورد مثال هاتون هیچ توضیحی نمیدین که هر قسمت از کد چیکار میکنه؟
متشکرم...
دلیل توضیح کم اینه که قصد این آموزش ، یاد دادن اشیا و بحث شی گرایی نیست.فقط یک مثال هست که بفهمین چه نوع داده هایی وجود داره. بحث های مربوط به شی گرایی بعدا به صورت کامل توضیح داده میشه.
سلام ممنون از لطف شما
برای اشنایی با اشیا از لینک زیر استفاده کنید.
beyamooz.com/php/110-class/142-%DA%A9%D9%84%D8%A7%D8%B3%D9%87%D8%A7-%D8%AF%D8%B1-php
چرا توی مثال پروتکت ،وقتی ما از کلاس گرند پا شی میسازیم ، خود شی این کلاس نمیتونه به متغیر پروتکتش دسترسی داشته باشه؟!
$outsiderWantst oKnowGrandpasNa me = new GrandPa;
اینجا ما از کلاس گرندپا شی ساختیم دیگه...چرا ارور میده ؟!
المان خارجی که نیست..
کدها رو قرار بدید.
خارج از کلاس، ابجکت میتونه فقط به متد public دسترسی داشته باشه. متد private رو فقط باید داخل همون کلاس استفاده کرد. متد protected هم میتونه داخل کلاس فرزند استفاده بشه. ولی در خارج از کلاس برای دستیابی به خصوصیات باید public باشه.
سلام این قطعه کد دقیقا چه وظیفه ای داره و چه کاری انجام میده؟؟
$obj=new My_Class();
$obj->SayHello();
?>
با سلام.
در مفاهیم شیءگرایی کلاس حالت انتزاعی را ایجاد میکند، و اشیاء نمونه ی واقعی از آن را.
خط اول باعث ایجاد یک شیء از کلاس میشود. توسط اشیاء می توان به متد و خصوصیات کلاس تعریف شده دسترسی پیدا کرد.
خط دوم باعث صدا زدن متد SayHello از کلاس موردنظر میشود. این متد یک عبارت چاپ میکند.
انواع داده ها در PHP رو خیلی کامل و جامع توضیح داده بودید ممنون.
آموزش خوبی بود.
از global چرا نمی شه استفاده کرد به جای public ؟؟
اصلا فرقش جی هست؟
در آموزش قبلی در قسمت متغیر های عمومی (global) در PHP چرا $y=10 رو با اینحال که public نذاشتین خطا نمی ده؟؟؟
گیج شدم
اگر پروژه ای که قصد نوشتن آنرا دارید، قرار است بصورت شیء گرا پیاده شود، هنگام نوشتن یک کلاس، محدوده ی دسترسی به متدها (function) و خصوصیت ها (property) به سه طریق می تواند باشد:
1-Public
2- Protected
3- Private
1- Public:
زمانی که شما یک متد (function) یا یک متغییر (property) را به صورت Public تعریف می کنید، دسترسی به آن متغییر یا متد Public بصورت زیر خواهد بود:
1- در کل کلاسی که متغییر یا متد در آن تعریف شده است.
2- در تمام کلاس هایی که از کلاس تعریف شده در بالا، ارث بری دارند.
3- هر المان خارج از کلاس، بدون هیچ محدودیتی به آنها دسترسی دارد.
در تصویر بالا، پسری که بصورت Public تعریف شده، حق رفتن به خارج از خانه، داخل حیاط و همچنین داخل خانه را دارد ...!
مثال:<?php
class GrandPa
{
public $name='Mark Henry'; // A public variable
}
class Daddy extends GrandPa // Inherited class
{
function displayGrandPaN ame()
{
return $this->name; // The public variable will be available to the inherited class
}
}
// Inherited class Daddy wants to know Grandpas Name
$daddy = new Daddy;
echo $daddy->displayGrandPaN ame(); // Prints 'Mark Henry'
// Public variables can also be accessed outside of the class!
$outsiderWantst oKnowGrandpasNa me = new GrandPa;
echo $outsiderWantst oKnowGrandpasNa me->name; // Prints 'Mark Henry'
?>
2- Private:
زمانی که شما یک متد (function) یا یک متغییر (property) را به صورت Private تعریف می کنید، دسترسی به آن متغییر یا متد Private بصورت زیر خواهد بود:
1- فقط در کلاسی که در آن متغیر یا متد Private تعریف شده، دسترسی وجود خواهد داشت.
مثال:
<?php
class GrandPa
{
private $name = 'Mark Henry';
}
class Daddy extends GrandPa
{
function displayGrandPaN ame()
{
return $this->name;
}
}
$daddy = new Daddy;
echo $daddy->displayGrandPaN ame(); // در خروجی با اخطار مواجه خواهید شد.
$outsiderWantst oKnowGrandpasNa me = new GrandPa;
echo $outsiderWantst oKnowGrandpasNa me->name; // در خروجی با یک خطا مواجه خواهید شد.
?>
3- Protected:
زمانی که شما یک متد (function) یا یک متغییر (property) را به صورت Protected تعریف می کنید، دسترسی به آن متغییر یا متد Protected بصورت زیر خواهد بود:
1- در کل کلاسی که متغییر یا متد در آن تعریف شده است.
2- در تمام کلاس هایی که از کلاس تعریف شده در بالا، ارث بری دارند.
3- هر المان خارج از کلاس، به هیچ عنوان به متغیر و متدهای Protected دسترسی ندارد.
مثال:
<?php
class GrandPa
{
protected $name = 'Mark Henry';
}
class Daddy extends GrandPa
{
function displayGrandPaN ame()
{
return $this->name;
}
}
$daddy = new Daddy;
echo $daddy->displayGrandPaN ame(); // Prints 'Mark Henry'
$outsiderWantst oKnowGrandpasNa me = new GrandPa;
echo $outsiderWantst oKnowGrandpasNa me->name; // در خروجی با خطا مواجه خواهید شد
?>
توجه:
در بالا متوجه شدیم که زمانی که پروژه مان بصورت شیء گرا پیاده شده، باید محدوده یا Scop متغیرها و متدهای کلاس را حتماً تعیین کنیم وگرنه با خطا مواجه می شویم، حالا ممکن است در پروژه تان، خارج از بحث شی گرایی بخواهید متغییری را بصورت عمومی تعریف کنید، یعنی بصورتی که در کل برنامه و تمام Functionها در دسترس باشد، بنابراین به سادگی یا آنرا در بدنه اصلی کد PHP تعریف می کنید و یا از متغیر GLOBALS$ در تابع مورد نظرتان استفاده کنید. با توجه به سوال کاربر گرامی مون، WEBNOOS در این حالت اگر محدوده را مشخص نکنیم، با خطایی مواجه نخواهیم شد.
برای کسب اطلاعات بیشتر در مورد متغیر GLOBALS$ در PHP به لینک زیر مراجعه کنید:
beyamooz.com/php/80-basic/55-%D9%85%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-post_$-%D8%AF%D8%B1-php
کد قسمت اشیا رو کپی کردم تو اجرا خط 4 رو ارور داد.
Parse error: syntax error, unexpected '$name' (T_VARIABLE), expecting function (T_FUNCTION) in C:\xampp\htdocs \New folder\new 0.php on line 4
اگر Scope یا محدوده ی عمل متغیر name$ را مشخص نمایید، خطا برطرف خواهد شد:<?php
class My_class
{
publi c $name="Amir";
function SayHello()
{
print "Hello My Name is $this->name";
}
}
$obj=new My_Class();
$obj->SayHello();
?>
سلام!
this->name$
این علامت یعنی چی؟
this$ در واقع اشاره به کلاس فعلی دارد. شی ء کلاس فعلی می باشد. هر کلاس یک سری خصوصیت دارند که برای دسترسی به آن ها از < - استفاده می کنیم. this->name$ به معنی برگرداندن مقدار خصوصیت (property) شیء کلاسی که در آن قرار دارید. یعنی به طور پیش فرض یک نمونه از هر کلاس وجود دارد و آن هم this می باشد. این شیء بدون new به طور پیش فرض ایجاد شده است.