جلسه چهارم PHP : آموزش کامل زبان برنامه نویسی پی اچ پی مقدماتی تا پیشرفته
در این مقاله از آموزش PHP با جلسه چهارم PHP در خدمت شما هستیم.
در قسمت قبل در جلسه سوم PHP تکبهتک عملگرها را در PHP بررسی کردیم. البته ورود کردن به بحث عملگرهای آرایهای ملزم به یادگیری این جلسه بود. سرانجام مبحثی ساده اما فوقالعاده لازم، با عنوان “ثبت کامنت ها و توضیحات در زبان پی اچ پی” را بیان کردیم.
با ما باشید تا در جلسه چهارم PHP به مباحث زیر بپردازیم.
- تعریف و نحوه کار با آرایهها
1.1. آرایه عددی
1.2. آرایه متناظر
1.3. آرایه تودرتو - تابع count
- تابع print_r و var_dump
- عملگرهای آرایهای
تعریف و نحوه کار با آرایهها
در جلسه دوم PHP شما را با متغیرها آشنا نمودیم. پس میدانیم که یکی از سادهترین راههای ذخیرهسازی دادهها در زبان برنامه نویسی استفاده از متغیرها در پی اچ پی می باشد. حال اگر تعداد زیادی متغیر داشته باشیم، که همگی از یک نوع باشند، مثلا همگی int و یا str باشند، بهجای اینکه چندین متغیر تعریف کنیم، میتوانیم از یک آرایه در PHP استفاده کنیم. پس آرایهها به گروهی از متغیرها گفته میشوند که دارای جنسی یکسان -و گاهی هم غیر یکسان- هستند.
برای مثال شما نیاز به ذخیرهی تعداد 50 عدد را دارید. یا نیاز به ذخیرهی 10 کلمه را دارید. یک آرایه میتواند تمامی آنها را درون خود ذخیره کنند.
عکس زیر را ملاحظه کنید. فرض کنید شما 10 داده داشته باشید، آیا نیاز به ساختن 10 متغیر دارید؟ خیر، کافی است یک آرایه تعریف کنید که تمامی این 10 داده را در خود ذخیره کند.
آرایهها به سه دسته تقسیم میشوند.
- آرایه عددی (numeric array)
- آرایه متناظر یا انجمنی (associative arrays)
- آرایه تودرتو (multidimensional arrays)
آرایه عددی
در این نوع از آرایه هر عضو عدد منحصربهفرد خود را دارد. و اولین عضو عدد صفر را اختیار میکند.
به مثال زیر از جلسه چهارم پی اچ پی توجه کنید.
1 2 3 4 5 6 |
<?php $city = array( 'alborz', 'gilan', 'khorasan', 'sari' ); echo $city[1]; // Outputs // gilan |
نکته 1: توجه داشته باشید که اولین خانه از آرایه مقدار 0 ، و آخرین خانه مقدار n-1 را دارد.
تابع count
بهوسیلهی این تابع میتوان طول یک آرایه را محاسبه کرد.
1 2 3 4 5 6 7 8 9 10 |
<?php $city = array( 'alborz', 'gilan', 'khorasan', 'sari' ); echo count($city); // Outputs = 4 |
نکته1: طول آرایه 4 است اما آخرین مقدار، عدد 3 را اختیار کرده است.
نکته2: آرایه را هم میتوان درون یک خط نوشت و هم بهصورت خطهای مجزا
آرایه متناظر
این آرایه تقریباً شبیه آرایه عددی است. اما برای هر مقدار یک شناسه وجود دارد. درواقع یک آرایهی key/value میباشد. key قبل از علامت <= و value بعد از علامت <= قرار میگیرد.
به مثال زیر از جلسه چهارم پی اچ پی توجه کنید.
1 2 3 4 5 6 7 8 9 10 |
<?php $city = array( 'karaj' => 'alborz', 'rasht' => 'gilan', 'mashhad' => 'khorasan', 'mazandaran' => 'sari' ); echo $city['rasht']; // Outpust = gilan |
نکته 1: توجه داشته باشید که با علامت <= میتوانید یک مقدار را برای کلید ِ مدنظر تنظیم کرد.
آرایه تودرتو
همانطور که از اسم آن پیداست، در این قسمت بهراحتی میتوان درون یک آرایه، آرایهای دیگر و درون آن بازهم آرایهای دیگر (به تعداد دلخواه) استفاده کرد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php $sherkat = array( array( 'modir_arshad' => 'ali', 'moaven' => 'hasan', 'dastyar' => 'reza', 'monshi' => 'omid' ), array( '800', '700', '600', '500' ) ); echo $sherkat[1][2]; // Otputs = 600 |
در مثال بالا آرایهای تعریف کردهایم. که درون آن دو آرایه وجود دارد. آرایهی اول مقدار 0 و آرایهی دوم مقدار 1 را نیز اختیار کرده است. آرایهی اول از نوع متناظر و آرایهی دوم از نوع عددی است.
حال فرض کنید نیاز به نام منشی در آرایه داریم.
1 2 |
echo $sherkat[0]['monshi']; // Otputs = omid |
نکته 1: درون آرایهای که اکنون تعریف کردیم دو آرایه وجود داشت، که خود از نوع عددی بودند و مقدار اولی 0 و دومی 1 بود. توجه داشته باشید که خودِ این آرایههای تودرتو میتوانستند از نوع آرایهی متناظر باشند و هرکدام شناسهای داشته باشند.
به مثال زیر از جلسه چهارم پی اچ پی توجه کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php $sherkat = array( 'karmandan' => array( 'modir_arshad' => 'ali', 'moaven' => 'hasan', 'dastyar' => 'reza', 'monshi' => 'omid' ), 'dastmozd' => array( '800', '700', '600', '500' ) ); echo "dastmozd " . $sherkat['karmandan']['monshi'] . " " . $sherkat['dastmozd'][3] . " ast."; // Outputs = dastmozd omid 500 ast. |
شما در حال آموزش و یادگیری جلسه چهارم PHP آرایه میباشید.
تابع print_r و var_dump
تابع print_r در PHP، تمامی عناصر یک آرایه را نمایش میدهد. اما تابع var_dump با جزییات بیشتر، بهطوریکه هم نوع و هم مقدار عناصر را نمایش میدهد.
به مثال زیر از جلسه چهارم PHP توجه کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<pre> <?php $a = array( '800', array( 10, "messi" ), '600', 'ali' ); print_r($a); echo '<hr>'; var_dump($a); ?> </pre> |
خروجی کد بالا:
نکته 1: در کد بالا، قبل و بعد از تگ <php?> ، از تگ ِ باز و بستهی <pre> </pre> استفاده کردیم. این تگ، خروجی را بهطور مرتبتری به نمایش درمیآورد. شما نیز یک بار بدون این تگ کد بالا را اجرا کنید.
یک مبحث از جلسهی قبل باقی مانده بود. که دانستن آن نیازمند گذراندن بخش آرایهها بود. حال به بررسی آن میپردازیم.
عملگر های آرایهای
ابتدا جدول را بهدقت ملاحظه کنید، سپس توضیحات تکمیلی پایین جدول وجود دارد. همچنین این توضیحات در w3resource نیز موجود میباشد.
مثال عملگر Union (+):
ابتدا تفاوت a+$b$ و b+$a$ را ملاحظه نمایید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<pre> <?php $a = array( 'First amount' => '100', 'second amount' => '200', 'third amount' => '300' ); $b = array( 'First amount' => '600', 'second amount' => '700', 'third amount' => '800', 'Fourth amount' => 'ali' ); $x = $a + $b; $y = $b + $a; var_dump($x); echo '<hr>'; var_dump($y); ?> </pre> |
خروجی کد بالا:
نکته 1: در a+b عناصر a را نگه میدارد و عناصر b را به آن اضافه میکند. ولی در b+a ابتدا عناصر b را نگهداشته و سپس عناصر a را به آن اضافی میکند.
نکته 2: حال دو آرایه به اسم x و y داریم، که عناصر آنها اینگونه میباشند.
(‘x=array(100,200,300,’ali
(‘y=array(600,700,800,’ali
مثال عملگر Equal (==):
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php $a = array( "one" => "php", "two" => "html" ); $b = array( "three" => "css", "four" => "asp.net" ); var_dump($a == $b); // Outputs = boolean false |
مثال تفاوت عملگر Equal (==) و Identity (===):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php // gettype $str_1= 12345; $str_2= '12345'; $str_3= '12345ali'; echo gettype($str_1).'<br>'; echo gettype($str_2).'<br>'; echo gettype($str_3).'<br>'.'<br>'; // Equal (==) if ($str_1 == $str_2) { echo 'true <hr>' ; } else { echo 'false'; } // Identity (===) if ($str_1 === $str_2) { echo 'true'; } else { echo 'false'; } |
نکته 1: با عبارت شرطی if جلسهی بعد آشنا میشویم.
نکته 2: str_1 از نوع اینتیجر (عددی,int) و str_2 و str_3 از نوع استرینگ (رشته,str) هستند.
نکته 3: به عبارتی ساده میتوان بیان کرد که عملگر (==) فقط مقدار متغیر (value) را چک میکند. اما عملگر (===) علاوه بر چک کردن value، نوع متغیر (type) را نیز بررسی میکند. پس در این مثال شرط اولی true و شرط دومی false میباشد.
خروجی کد بالا:
مثال تفاوت عملگر Inequality (!=) و (<>) و Non-Inequality (!==) :
همانطور که در توضیحات جدول ملاحظه نمودید، عملگر (=!) و (<>) تفاوتی ندارند. اما تفاوت دو عملگر (=!) و (==!) را در مثال زیر از جلسه چهارم پی اچ پی ببینید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php // gettype $str_1 = 123; $str_2 = '123'; $str_3 = '123ali'; echo gettype($str_1) . '<br>'; echo gettype($str_2) . '<br>'; echo gettype($str_3) . '<br>' . '<br>'; // Inequality (!=) if ($str_1 != $str_2) { echo 'true<hr>'; } else { echo 'false<hr>'; } // Non-Inequality (!==) if ($str_1 !== $str_2) { echo 'true'; } else { echo 'false'; } |
خروجی کد بالا:
نکته 1: همانند مثال قبل عملگر (=!) فقط مقدار متغیر (value) را چک میکند. اما عملگر (==!) علاوه بر چک کردن value، نوع متغیر (type) را نیز بررسی میکند. پس در این مثال شرط اولی false و شرط دومی true میباشد.
مبحث آرایهها بهپایان رسید. برای اطلاعات بیشتر میتوانید از اینجا استفاده کنید. حتماً و حتماً با انواع آرایهها تمرین کنید.
3 Comments
Join the discussion and tell us your opinion.
فوق العاده کامل و حرفه ای
ممنون از سایت خوبتون
سلام من امروز از صبح تا شب گشتم تا یه سایت پیدا کنم با زبان ساده phpرو یاد بده تنها سایتی که به دردم خورد همین سایت کدپز بود مرسی از زحمات شما و اما یک خواهش من میخوام آموزش کامل طراحی سایت با php رو یاد بگیرم فیلم این ها رو قرار نمیدید ؟؟
ممنون از محبتی که دارید. لطفا آموزش های متنی ِ سایت را با دقت مطالعه و تمرین کنید.
به زودی ویدیو های آموزش PHP تولید خواهند شد.
موفق باشید.