آموزش طراحی صفحات وب بصورت کاربردی

متغیرها و آرایه در PHP

شنبه, ۵ بهمن ۱۳۹۲، ۱۰:۵۳ ب.ظ
متغیرها در PHP ظرفهایی هستند برای ذخیره اطلاعات

قواعد نامگذاری متغیرها در PHP:
  • متغیرها با علامت $ می شود و در ادامه نام متغیر می آید.
  • نام متغیرها یا با حروف  یا با خط زیر( _ ) شروع می شود.
  • نام متغیرها نمی تواند با اعداد شروع شود.
  • نام متغیرها می تواند فقط شامل حروف ، اعداد و خط زیر باشد ( _ ، 9-0 ، A - Z  )
  • نام متغیر ها حساس به متن است. ( دو متغیر a$  و A$ با هم متفاوتند)
مثال :
نامگذاری درست :
  $a  ، $number ، $_year ، $m12
نامگذاری نادرست:  

$-a  ، $2number ، $#year ، $m-12


در PHP هیچ دستور یا فرمانی برای تعریف نوع متغیر وجود ندارد و وقتی ما برای بار اول به متغیرها مقدار دهی می کنیم متغیر ما با نوع آن ایجاد می شود.
مثال :
<?php
    $txt="Hello world!";
    $x=5;
    $y=10.5;
?>
متغیر txt از نوع رشته ای ، متغیر x از نوع صحیح و y از نوع اعشاری می باشد.

آرایه چیست ؟
آرایه عبارتست از یک سری خانه های به هم پیوسته حافظه که همه آنها هم جنس هستند و با یک نام به آنها رجوع می شود .
این تعریف یک تعریف کلی در اکثر زبانهای برنامه نویسی است . البته در php شرط هم جنس بودن وجود ندارد .
مثلا فرض کنید بخواهید یک برنامه بنویسید که در آن قرار است اطلاعات یکسری از دانشجویان یک کلاس را در یکسری متغیر قرار دهیم و پردازشی روی آن انجام شود چه کار باید انجام دهیم ؟ آیا به ازاء هر دانشجو یک متغیر بگیریم ؟ آیا اصلا تعداد دانشجویان را از قبل می دانیم ؟ اگر تعداد آنها مرتب تغییر کند و پویا باشد چه ؟ اصلا فرض کنیم تعداد را هم بدانیم اگر تعداد آنها زیاد بود چه کنیم مثلا در مورد یک دانشگاه که ممکن است ده هزار نفر دانشجو داشته باشد به تعداد این متغیر ها فکر کرده اید ؟ ضمن اینکه احتمالا پردازش همه آنها شامل عملیات یکسانیست ولی با تعریف یک متغیر برای هر دانشجو عملا از کامپیوتر هیچ بهره ای نبردیم . چرا که آن عملیات را برای هر ده هزار نفر باید تکرار کنیم  (یعنی کد را کپی و پیست کنیم) . حال لگر برای هر دانشجو بخواهیم فقره های اطلاعاتی مختلفی از جمله شماره دانشجویی ، نام ، نام خانوادگی و ... را ذخیره کنیم شرایط به مراتب بد تر هم می شود .
فلسفه وجودی آرایه همینست که قرار است یکسری پردازش مشخص بر روی تعدادی (احتمالا زیاد) شیء هم جنس انجام شود . یعنی برای تک تک اشیاء عملیات یکسان خواهد بود . حال بهینه ترین راه برای دستیابی به این اشیاء استفاده از ساختمان داده ایست که همه را تحت یک نام ذخیره کرده و بعد با یک آفست یا شماره یا هر مکانیزم دیگری بتوان به آنها دسترسی داشت .
برای تعریف آرایه در PHP می توان از دستور زیر استفاده کرد :
<?php
$array = array();
?>
با این کار (استفاده از دستور array) یک آرایه ایجاد کرده ایم . حتی می توانیم به هنگام ایجاد آرایه مقادیر خانه های آنرا نیز مشخص کنیم . ولی نکته ای که در همین ابتدا باید به آن اشاره کنم اینست که آرایه در PHP بسیار منعطف تر از آرایه در زبان های دیگری مانند c است . چرا که هم این متد را می توانید بدون پارامتر بکار برید و هم با پارامتر . همچنین در تعداد پارامتر ها محدودیتی وجود ندارد می توانید تا دلتان بخواهد پارامتر به این متد بدهید و لزومی هم ندارد که تعداد خانه های آرایه از قبل مشخص باشد و حتی می توانید بعد از تعریف آرایه خانه ای به آن بیفزائید .  به مثال زیر توجه کنید :
<?php
$cars = array("BMW" , "Audi" , "Benz");
$countries = new array("Iran" , "Germany" , "Egypt" , "The U.S");
?>
همانطور که می بینید در خط اول ، آرایه ای با 3 عضو و در خط دوم آرایه ای با 4 عضو تعریف شده است .
در زبان PHP سه نوع آرایه وجود دارد :
1- آرایه های عددی (Numeric Array)
2- آرایه های انجمنی (Associative Array)
3- آرایه های چند بعدی (Multidimensional Array)

1- آرایه های عددی در PHP
آرایه عددی یا Numeric Array آرایه ایست که در اکثر زبان های برنامه نویسی وجود دارد . در این آرایه ، به کل آرایه یک نام می دهیم بدین ترتیب هر یک از خانه های آرایه یک شماره ایندکس می گیرد و با آن شماره خاص می توانیم به یک خانه خاص آرایه دست بیابیم. به مثال زیر توجه کنید :
<?php
$cars = array("BMW" , "Audi" , "Benz");
$countries = new array("Iran" , "Germany" , "Egypt" , "The U.S");
echo "Our cars are : ".$cars[0]." , ".$cars[1]." , ".$cars[2];
$cars[3] = "Opel";
?>
همانطور که می بینید به خانه های آرایه با یک شماره که به نام آرایه اضافه شده است دسترسی پیدا کردیم . این شماره اندیس آرایه یا ایندکس (index) یا آفست نام دارد . اندیس آرایه از شماره صفر شروع می شود و همانطور که می بینید در خط آخر این برنامه یک خانه به آرایه اضافه شده است به همین سادگی ! بدون آنکه از قبل و در هنگام تعریف آرایه فکرش را کرده باشیم . البته پیمایش آرایه یا دستیابی به خانه های آرایه معمولا به این شکل انجام نمی شود بلکه با استفاده از دستور foreach (حلقه foreach) این کار قابل انجام است . اگر میخواهید راجع به دستور foreach بیشتر بدانید، مطلب حلقه های تکرار while و for از همین سایت را مطالعه فرمائید.

2- آرایه های انجمنی (Associative Array)
آرایه انجمنی آرایه ایست که در آن به ازاء هر مقدار (هر خانه) یک فیلد بنام کلید نیز در نظر گرفته می شود که این کلید باید در بین کلید های خانه های دیگر منحصر به فرد و یکتا باشد . برای دستیابی به خانه های یک آرایه انجمنی ، دیگر از اندیس عددی استفاده نمی شود بلکه از فیلد کلید به عنوان رشته کلیدی دستیابی استفاده می شود . به مثال زیر توجه کنید :
<?php
$ages =  array("Ali" => 21 , "Ahmad" => 24 , "Akbar" => 19);
echo $ages["Ali"];
?>
این کد یک آرایه انجمنی با سه عضو ایجاد می کند و بعد به هنگام استفاده از کلید هایی که به هنگام تعریف داده شده برای دستیابی به عضو مربوطه استفاده می شود در اینجا باید حواستان باشد که این کلید مانند سایر موارد دیگر در PHP به حروف بزرگ و کوچک حساس است (Case Sensitive).
آرایه های انجمنی نقش عمده و مهمی در PHP بازی می کنند . اکثر کارها در PHP از دریافت پارامترهای ارسالی از صفحات وب گرفته تا واکشی اطلاعات از دیتابیس همه و همه از آرایه های انجمنی استفاده می کنند . آرایه هایی مانند $_GET ، $_POST ، $_SESSION ، $_COOKIE و ... نمونه هایی از آرایه های انجمنی هستند .

3- آرایه های چند بعدی (Multidimensional Array) :
این نوع آرایه ، آرایه ایست که هر عضو آن می تواند خود آرایه باشد . در حقیقت این نوع آرایه همانست که به آن آرایه ای از آرایه ها می گویند . حال این آرایه می تواند عددی باشد ، می تواند انجمنی باشد . در هر دو نوع آرایه چند بعدی وجود دارد . حتی بعد های مختلف می توانند انواع مختلف داشته باشند مثلا بعد اول انجمنی باشد و بعد دوم عددی مانند مثال زیر :
<?php
$families = array(
"Alavi"=>array("Ali" , "Ahmad" , "Akbar") ,
"Akbari=>array("Hasan" , "Mahdi"),
"Ahmadi"=>array("Zahra" , "Majid" , "Maryam" , "Meisam")
);
echo "Second Member of Alavi family is : ".$families['Alavi'][1];
?>
این آرایه دارای بعد اول انجمنی و بعد دوم عددیست . در حقیقت در سطح اول یک آرایه انجمنی داریم که دارای سه عضو است : خانواده های Alavi ، Akbari  و Ahmadi . و در سطح دوم هر یک از این خانواده های اعضای خود را دارند که در داخل هر خانواده با شماره (ایندکس) به آنها دست می یابیم بنابراین سطح دوم عددیست .
همانطور که از مثال فوق نیز پیداست یکی از تفاوت های عمده ای که آرایه در PHP با آرایه در سایر زبانها دارد اینست که در آرایه های چند بعدی PHP لازم نیست تعداد اعضای بعد های دوم به بعد با هم برابر باشند مانند مثال فوق که یک آرایه دو بعدیست که اولین عضو بعد اول دارای 3 عضو در بعد دوم و دومین عضو بعد اول (خانواده Akbari) دارای دو عضو در بعد دوم است .

  • امیر دربندی

متغیر

متغیرها در php

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی