فهرست

آموزش php مقدماتی قسمت هشتم

خوب نبودخوبخیلی خوبعالیخیلی عالی (5٫00 از 1 رای)
نویسنده: پوریا پرهامی
تاریخ ارسال: ۱۱ / دی / ۱۳۹۵

مقادیر بازگشتی از فانکشن Return:

همان طور که در مثال قبل دیدید فانکشن‌ها می‌توانند مقداری را چاپ کنند حال اگر بخواهیم مقداری را برگردانیم، باید چه کاری انجام دهیم ؟ از کلمه کلیدی return استفاده می‌کنیم، و اگر بیش از یک داده را بخواهیم برگردانیم آنها را داخل یک آرایه قرار داده و سپس return می‌کنیم، برای خواندن آن آرایه نیز می‌توانیم از list استفاده کنیم و یا به همان شکل قبل با آرایه کار کنیم .

متغییرهای محلی و سراسری Global and Local Scope :

متغییرهایی که در داخل فانکشن نوشته می‎شوند را متغییر محلی و متغییرهایی که خارج از آن هستند را سراسری گویند .

اگر مثال بالا را اجرا کنید می‎بینید که فقط outside چاپ می‎شود و به متغییر محلی که داخل فانکشن است دست‌رسی نداریم. همچنین با فراخوانی فانکشن مقدار متغییر سراسری نیز تغییر نمی‌کند .
برای دسترسی به مقدار متغییر سراسری می‌توانیم داخل فانکشن عبارت global $anar را بنویسیم، در این صورت بعد از اجرای کد می‌بینید که بعد از فراخوانی فانکشن مقدار ۲ به inside تغییر پیدا می‌کند.
تا اینجا آموختیم چگونه فانکشن ایجاد کنیم به آن مقدار ورودی دهیم از آن خروجی بگیریم و آن را صدا کنیم.

حال فرض کنید فانکشن مورد نظر نیاز به ورودی داشته باشد، اما در زمان فراخوانی فانکشن کاربر فراموش کند مقادیر یا مقدار ورودی را وارد کند، در این صورت با خطا مواجه خواهیم شد برای رفع این مشکل به پارامترهای ورودی مقدار پیشفرض می‌دهیم به مثال زیر توجه کنید :

در کد بالا اگر فانکش paint بدون ورودی فراخوانی شود، مانند echo اول مقادیر office برای room و مقدار red برای color انتخاب می‌شود.

ساختن یک صفحه وب :

برای این که اطلاعات یا درخواست‌های کاربر را دریافت کنیم، ۳ روش وجود دارد استفاده از URLs/Links (GET) استفاده از Forms(POST) استفاده از Cookies
دو فایل php خواهیم ساخت، یکی به نام firstPage و دیگری به نام secondPage، حال می‌خواهیم از صفحه اول به صفحه دوم برویم برای این کار از تگ a مربوط به html استفاده می‌کنیم و آدرس صفحه‌ای را که می‌خواهم در href قرار می‌دهیم، وقتی بر روی لینک ایجاد شده کلیک کنیم به صفحه دوم می‌رویم، اگر بخواهیم پارامتری به صفحه دوم بفرستیم می‌توانیم با استفاده از کویری استرینگ این کار را انجام دهیم.  برای این کار بعد از آدرس صفحه مورد نظر علامت سوال قرار می‌دهیم و نام کاراکتر علامت مساوی و سپس مقداری که می‌خواهیم انتقال پیدا کند را می‌نویسیم، در مثال وقتی روی لینک ایجاد شده کلیک کنیم، به صفحه دوم می‌رویم اگر به URL دقت کنید می‌بینید که http://localhost/codes/secondPage.php?id=2 چاپ شده است .

حال باید این داده را در صفحه دوم بگیریم برای این کار از سوپرگلوبالی به نام $_GET استفاده می‌کنیم، به صفحه دوم بروید و متغیری به نام id یا هر نام دیگری ایجاد کنید، سپس با استفاده از $_GET مقدار id را درون آن بریزید و چاپ کنید، برای آن که ببینید در $_GET چه چیزهایی وجود دارد می‌توانید آن را print_r کنید.

در هنگام استفاده از URL ممکنه است مشکلاتی  ایجاد شود. بعضی از کلمات برای url معنی خاصی دارند مثلا &، اگر بخواهیم دو پارامتر را در url ارسال کنیم از این علامت استفاده می‌کنیم

همان طور که می‌بینید در صفحه اول پارامتر company را در url ارسال کردیم که داخل آن darkoob & we وجود دارد اما وقتی در صفحه دوم این پارامتر را می‌گیریم فقط darkoob برای من چاپ می‌شود چرا چون علامت & برای تعریف یک کاراکتر دیگر در url استفاده می‌شود، در اینجا web به عنوان یک پارامتر دیگر در نظر گرفته شده است. برای رفع این مشکل از urlencode استفاده می‌کنیم .

ممکن است بخواهیم آدرسی را در url ارسال کنیم، نه فقط یک پارامتر را برای این کار از rawurlencode استفاده می‌کنیم.

urlencode برای کویری استرینگ‌ها و rawurlencode برای مسیرها است به مثال زیر دقت کنید.

اگر کدبالا را اجرا کنیم خروجی زیر را خواهید دید .

phptutotial14

در لینک اول سیستم به دنبال bio/Molana فاصله jalalodin … می‌گردد اما در لینک دوم سیستم به دنبال /bio/Molana+Jalalodin+Balkhi خواهد گشت، اما ما چیزی به اسم Molana+Jalalodin+Balkhi نداریم. این تفاوت استفاده از rawurlencodeو urlencode است.
فقط url ها نیستند که کاراکترهای رزرو شده دارند بلکه html نیز همین گونه است. فرض کنید می‌خواهم لینکی بسازیم و در آن بنویسم<Click>&lean more در این صورت html این عبارت را به عنوان یک تگ می‌شناسد و <Click> نمایش داده نمی‌شود.

phptutotial15
بعد از استفاده از htmlspecialchars
phptutotial16

با عضویت در خبرنامه ی دارکوب وب، مقالات و آموزش های جدید به ایمیل شما ارسال میشود. همین حالا ایمیل خود را وارد کنید.
تعداد افرادی که تاکنون عضو شده اند:
102 نفر
کانال اطلاع رسانی دارکوب وب در تلگرام کانال تلگرام دارکوب وب

هنوز دیدگاهی ارسال نشده است. شما می‌توانید اولین نفری باشید که دیدگاه خود را بیان می‌کنید.