026-32601

نحوه الحاق کردن دو متغیر به یکدیگر

1 1 1 1 1 (3 Votes)

برای آشنایی با متد های مرتبط با string ها ابتدا کد خود را به صورت زیر بازنویسی می کنیم:

همانطور که در کد فوق مشخص است ابتدا یک متغیر تحت عنوان stringOne$ ایجاد کرده و مقدار آن را برابر با عبارت This is string one قرار داده ایم سپس متغیر دیگری تحت عنوان stringTwo$ ایجاد کرده و مقدار آن را برابر با This is string two قرار داده ایم. سپس متغیر دیگری تحت عنوان stringThree$ ایجاد کرده اما اینبار به جای آنکه مقداری برای این متغیر در نظر بگیریم، مقدار آن را برابر با متغیر stringOne$ قرار داده ایم. در ادامه با استفاده از دستور echo قصد داریم تا مقدار متغیر stringThree$ را نمایش دهیم. حال مرورگر خود را به روز رسانی کرده تا ببینیم خروجی این صفحه چه خواهد بود:

1-strings-in-php

می بینیم که عبارت This is string one نمایش داده می شود. به طور خلاصه می توان گفت که مقدار متغیر stringOne$ برابر با عبارت This is string one است و از آنجا که مقدار متغیر stringThree$ برابر با خود stringOne$ قرار داده شده است، از این رو عبارت This is string one در مرورگر نمایش داده می شود.
اکنون قصد داریم تا دو متغیر را با یکدیگر ادغام کنیم. برای این منظور کد فوق را به صورت زیر بازنویسی می کنیم:

همانطور که در کد فوق ملاحظه می شود ابتدا مقدار متغیر stringThree$ را با استفاده از یک علامت مساوی برابر با متغیر stringOne$ قرار داده ایم. سپس در خط بعد متغیر stringTwo$ را به متغیر stringThree$ الحاق کرده ایم به این شکل که پیش از علامت مساوی یک نقطه قرار داده ایم. حال مجدد پس از ذخیره کرده فایل، مرورگر فایرفاکس را به روز رسانی می کنیم:

2-strings-in-php

می بینیم که پس از نمایش مقدار متغیر stringOne$ بلافاصله مقدار متغیر stringTwo$ به نمایش در می آید.
گاهی اوقات در استفاده از زبان پی اچ پی برای ما پیش می آید که نیاز داریم تا عبارتی را روی صفحه مرورگر به نمایش در آوریم اما این در حالی است که کلمه ای داخل آن string قرار دارد که برای تاکید بیشتر بایستی آن را داخل دو علامت " " قرار دهیم. با بررسی کد زیر خواهیم دید که به چه شکل می توان این کار را انجام داد:

سپس مرورگر فایرفاکس را به روز رسانی کرده تا نتیجه کد فوق را مشاهده کنیم:

3-strings-in-php

می بینیم که وب اپلیکیشن ما دارای مشکلی است. چنانچه پیغام خطای نمایش داده شده روی صفحه را به دقت بررسی کنیم، متوجه خواهیم شد که به ما گفته می شود در خط ششم در کد مشکلی وجود دارد. با برگشتن به نرم افزار ++ Notepad و نگاه کردن به خط ششم چیزی که توجه ما را به خود جلب خواهد کرد این است که ما دو جفت علامت " " داریم. یک جفت در ابتدا و انتهای string و یک جفت هم در کنار واژه is . اتفاقی که در اینجا رخ می دهد این است که وب اپلیکیشن پی اچ پی نمی تواند تشخیص دهد که نقطه شروع و پایانی string ما کجا است. به عبارت دیگر ما با قرار دادن یک علامت " در ابتدای string خود به پی اچ پی دستور می دهیم که نقطه شروع string ما اینجا است. بنابراین پی اچ پی می بایست از آن نقطه به بعد را به عنوان مقداری از جنس یک string تلقی کند. زمانی هم یک " دیگر در انتهای string خود قرار می دهیم، این دستور را به پی اچ پی می دهیم که اینجا هم نقطه پایان string ما است. بنابراین هر آنچه که مابین این دو علامت " " قرار دارد را بایستی به عنوان Value یا مقداری از جنس string برای متغیر ما در نظر گیرد. حال زمانیکه دو علامت " " در سمت راست و چپ کلمه is قرار می دهیم. پی اچ پی با برخورد با علامت " که در سمت چپ کلمه is قرار دارد تصور می کند که به نقطه پایانی string رسیده است. بنابراین کلمه is و هر آنچه که بعد از آن قرار گیرد را دیگر مد نظر قرار نخواهد داد و از سوی دیگر از آنجا که ما به هیچ وجه نمی توانیم مقداری از جنس یک string را خارج از علامت های " " برای یک متغیر در نظر بگیریم، وب اپلیکیشن ما با مشکل مواجه می شود.
برای رفع این مشکل می بایست از کاراکتر Back Slash یا همان علامت \ پیش از علامت های " " مرتبط با واژه is استفاده کنیم. برای روشن شدن این موضوع کد فوق را به صورت زیر بازنوسی می کنیم:

همانطور که در کد فوق ملاحظه می شود، پیش از علامت های " " مرتبط با کلمه is یک علامت \ قرار داده شده است. در واقع با اینکار به پی اچ پی دستور می دهیم که علامت های " " را دیگر به عنوان نقاط شروع و پایان یک string در نظر نگرفته بلکه آنها را به عنوان یک کاراکتر در نظر بگیرد:

4-strings-in-php

همانطور که مشاهده می کنیم، کلمه is مابین دو علامت " " قرار گرفته و وب اپلیکیشن هم به درستی اجرا می گردد.
این قضیه در مورد علامت های ‘ ‘ هم صدق می کند. برای روش شدن این مسئله کد فوق را به صورت زیر بازنویسی می کنیم:

در صورتیکه این کد را هم اجرا کنیم نتایج مشابهی همچون مرحله قبل دریافت خواهیم کرد.



Submit to FacebookSubmit to Google PlusSubmit to Twitter

نوشتن دیدگاه

نظراتی که به تعمیق بحث کمک می کند، در معرض ملاحظه و قضاوت دیگران قرار می گیرند. نظراتی که حاوی توهین، افترا و تهمت به دیگران باشد، منتشر نخواهد شد. لطفاً از نوشتن نظرات خود به صورت حروف لاتین (فینگلیش) خودداری نمایید.


تصویر امنیتی
تصویر امنیتی جدید