موضوع: برنامه نویسی تاریخ انتشار: 8 ماه قبل

مقادیر بازگشتی از فانکشن 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

اشتراک گذاری:
http://darkoobweb.com/?p=986

درباره نویسنده پوریا

سلام ، من پوریا هستم با جاوا آشنایی دارم به هوش مصنوعی و امنیت علاقه مندم و امید وارم آموزش هایی که در وب سایت قرار می دم برای شما مفید باشه ، موفق باشید {^}

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *