رشته ها، اعداد صحیح، اعداد با ممیز شناور، بولین، آرایه ها، اشیاء، تهی (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 کلیک کنید.
آموزش انواع داده ها در 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 از کلاس موردنظر میشود. این متد یک عبارت چاپ میکند.
اصلا فرقش جی هست؟
در آموزش قبلی در قسمت متغیر های عمومی (global) در PHP چرا $y=10 رو با اینحال که public نذاشتین خطا نمی ده؟؟؟
گیج شدم
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 displayGrandPaName()
{
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->displayGrandPaName(); // Prints 'Mark Henry'
// Public variables can also be accessed outside of the class!
$outsiderWantstoKnowGrandpasName = new GrandPa;
echo $outsiderWantstoKnowGrandpasName->name; // Prints 'Mark Henry'
?>
2- Private:
زمانی که شما یک متد (function) یا یک متغییر (property) را به صورت Private تعریف می کنید، دسترسی به آن متغییر یا متد Private بصورت زیر خواهد بود:
1- فقط در کلاسی که در آن متغیر یا متد Private تعریف شده، دسترسی وجود خواهد داشت.
مثال:
<?php
class GrandPa
{
private $name = 'Mark Henry';
}
class Daddy extends GrandPa
{
function displayGrandPaName()
{
return $this->name;
}
}
$daddy = new Daddy;
echo $daddy->displayGrandPaName(); // در خروجی با اخطار مواجه خواهید شد.
$outsiderWantstoKnowGrandpasName = new GrandPa;
echo $outsiderWantstoKnowGrandpasName->name; // در خروجی با یک خطا مواجه خواهید شد.
?>
3- Protected:
زمانی که شما یک متد (function) یا یک متغییر (property) را به صورت Protected تعریف می کنید، دسترسی به آن متغییر یا متد Protected بصورت زیر خواهد بود:
1- در کل کلاسی که متغییر یا متد در آن تعریف شده است.
2- در تمام کلاس هایی که از کلاس تعریف شده در بالا، ارث بری دارند.
3- هر المان خارج از کلاس، به هیچ عنوان به متغیر و متدهای Protected دسترسی ندارد.
مثال:
<?php
class GrandPa
{
protected $name = 'Mark Henry';
}
class Daddy extends GrandPa
{
function displayGrandPaName()
{
return $this->name;
}
}
$daddy = new Daddy;
echo $daddy->displayGrandPaName(); // Prints 'Mark Henry'
$outsiderWantstoKnowGrandpasName = new GrandPa;
echo $outsiderWantstoKnowGrandpasName->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
Parse error: syntax error, unexpected '$name' (T_VARIABLE), expecting function (T_FUNCTION) in C:\xampp\htdocs\New folder\new 0.php on line 4
class My_class
{
public $name="Amir";
function SayHello()
{
print "Hello My Name is $this->name";
}
}
$obj=new My_Class();
$obj->SayHello();
?>
this->name$
این علامت یعنی چی؟