طراحی وب سایت کتابخانه

طراحی وب سایت کتابخانه

رشته ها (strings)

چهارشنبه, ۶ اسفند ۱۳۹۳، ۱۱:۳۸ ق.ظ

     یک کاراکتر در زبان پی اچ پی به عنوان یک بایت به حساب می آید و مجموع چند کاراکتر را رشته می نامند. در نتیجه پی اچ پی فقط از مجموعه 256 کاراکتری پشتیبانی می کند. البته مشکلی وجود ندارد که یک رشته خیلی بزرگ شود، پی اچ پی نیز هیچ نوع محدودیتی برای اندازه رشته ندارد، تنها محدودیت موجود مقدار حافظه کامپیوتری است که پی اچ پی بر روی آن نصب شده است. 

یک رشته را می توان به 4روش معرفی کرد:

نقل قول تکی

     آسان ترین راه برای معرفی کردن یک مقدار به صورت رشته آن است که آن را در داخل نقل قول تکی (') قرار دهیم. 

     در این حالت اگر می خواهید خود علامت نقل قول تکی در داخل رشته نمایش داده شود باید قبل از آن یک علامت / قرار دهید. برای نمایش دادن علامت / نیز باید قبل از آن یک / دیگر قرار دهید، یعنی به این صورت: // . غیر از دوکاراکتر ذکر شده، هر نوع کاراکتر دیگری که بعد از علامت / قرار گیرد هیچ مفهومی نخواهد داشت و همان کاراکتر نمایش داده خواهد شد (به همراه /). 

     با نگاه کردن مثال های زیر مطلب رو بهتر متوجه خواهید شد: 

<?php
echo 'یک رشته ساده را نمایش می دهد';

//برای نمایش دادن نقل قول تکی اینگونه عمل کنید
//خروجی اینچنین خواهد بود:
//Arnold once said: "I'll be back"
echo 'Arnold once said: "I\'ll be back"';

// خروجی: You deleted C:\*.*?
echo 'You deleted C:\\*.*?';

// خروجی: You deleted C:\*.*?
echo 'You deleted C:\*.*?';

// خروجی: This will not expand: \n a newline
echo 'This will not expand: \n a newline';

// خروجی: Variables do not $expand $either
echo 'Variables do not $expand $either';
?>
نقل قول دوتایی

     با استفاده از نقل قول دوتایی (") نیز می توان رشته ها را مشخص کرد. در این حالت پی اچ پی کاراکترهای بیشتری را برای استفاده از قواعد نادیده گرفتن (با استفاده از /) می پذیرد.

    مهمترین نکته در مورد نقل قول دوتایی در این است که متغیرهایی که داخل نقل قول دوتایی قرار می گیرند، توسط پی اچ پی مورد پردازش قرار خواهند گرفت؛ به عبارت دیگر مقدار نهایی متغیر به عنوان خروجی نمایش داده خواهد شد.

ساختار heredoc
     سومین روش برای مشخص کردن یک رشته استفاده از ساختار heredoc می باشد. این ساختار با عبارت<<< آغاز می شود. بلافاصله بعد از این عملگر باید یک شناساگر (identifier) ایجاد کنیم. سپس به خط بعدی می رویم و رشته مورد نظر خود را می نویسیم. پس از آن دوباره همان شناساگر را می آوریم.
     توجه داشته باشید که شناساگر انتخاب شده باید از قواعد نام گذاری مربوط به برچسب های پی اچ پی پیروی کند، یعنی این برچسب باید فقط شامل کاراکتر، عدد، و علامت زیر خط (_) باشد و نباید با کاراکتر عددی یا علامت زیرخط (_) شروع شود.
نکته
     حتما در نظر داشته باشید که شناساگر پایانی باید در یک خط قرار گیرد و در آن خط هیچ کاراکتر دیگری وجود نداشته باشد، به استثنای علامت نقطه ویرگور (;) که در انتهای خط قرار می گیرد. یعنی این شناساگر نباید دارای فرورفتگی باشد و همچنین قبل از علامت نقطه ویرگول هیچ گونه فضای خالی وجود نداشته باشد.
     متن قرار گرفته در داخل ساختار heredoc دقیقا مانند رشته قرار گرفته در داخل نقل قولهای دوتایی است. در داخل این ساختار برای نمایش علامت نقل قول دوتایی (") نیاز به استفاده از بک اسلش نیست. سایر ساختار نادیده گرفتن نیز مانند ساختار ذکر شده در نقل قول دوتایی است.
به مثال زیر توجه کنید:
<?php
<<<THE_END
متن مورد نظر خود را در این قسمت می نویسیم. 
متن می تواند شامل چند خط و طولانی باشد.
THE_END
>

     ساختار heredoc از نسخه 4 به بعد پی اچ پی اضافه شده است.

ساختار nowdoc
     ساختار nowdoc مانند ساختار نقل قول تکی عمل می کند در حالی که ساختار heredoc مانند نقل قول دوتایی عمل می کند. ساختار nowdoc را مانند ساختار heredoc تعریف و مشخص می کنیم. اما در ساختار nowdoc هیچ گونه پردازشی بر روی متغیرها انجام نمی شود.
     ساختار nowdoc نیز همانند ساختار heredoc است و برای قرار دادن رشته از طریق ساختار nowdoc، ابتدا کاراکترهای <<< قرار می گیرد، سپس شناساگر مورد نظر خود را قرار می دهیم، البته در این ساختار، شناساگر حتما در داخل علامت نقل قول تکی قرار داده می شود. تمامی قوانین مربوط به شناساگرها در heredoc در مورد شناساگرهای استفاده شده در ساختار nowdoc نیز استفاده می شود.
     برای درک بهتر این ساختار به مثال زیر توجه کنید:
<?php
$str = <<<'THE_END'
یک مثال از کاربرد ساختار nowdoc
می توان رشته را در چند خط درج کرد
THE_END;
>
     ساختار nowdoc از نسخه 5.3.0 به بعد اضافه شده است.
تجزیه تحلیل متغیرها
      همانطور که در بالا نیز ذکر شد، هنگامی که یک رشته را در داخل علامت نقل قول های دوتایی قرار می دهیم یا اینکه رشته را با استفاده از ساختار heredoc ایجاد می کنیم، چنانچه متغیر (هایی) در داخل رشته وجود داشته باشد، آن متغیرها مورد تجزیه و تحلیل قرار می گیرند.
     برای قرار دادن متغیرهای در داخل رشته (رشته هایی که با یکی از دو روش بالا معرف شده اند)، دو روش وجود دارد: یکی روش ساده، و دیگری روش پیچیده. روش ساده، همانطور که از نامش نیز برمی آید، بیشتر مورد استفاده قرار می گیرد؛ در این روش یک متغیر، مقدار یک آرایه، یا ویژگی (property) یک شی را به راحتی و با کمترین تلاش در داخل یک رشته قرار می دهیم.
     ساختار پیچیده نیز از نسخه 4 به بعد پی اچ پی معرفی شده که با استفاده از علامت آکولاد می توان متغیرها را در داخل رشته استفاده کرد.
ساختار ساده
      پردازشگر پی اچ پی هنگامی که در داخل رشته با علامت $ مواجه می شود به دنبال یک نام متغیر معتبر می گردد. اگر می خواهید پایان نام متغیر را صریحا به پردازشگر پی اچ پی معرفی کنید باید نام آن را در داخل علامت آکولاد قرار دهید.
     به مثال پایین توجه کنید:
<?php
$name = "Mehrdad";

echo "Dear user $mehrdad, welcome to TOUK.";
?>
      خروجی مثال بالا اینچنین خواهد بود:
Dear user Mehrdad, welcome to TOUK.
      با این روش می توان به نمایه های یک آرایه و همچنین به ویژگی های (property) یک شی دسترسی پیدا کرد.
ساختار پیچیده (استفاده از آکولاد)
      شاید فکر کنید منظور از پیچیده این است که استفاده از این ساختار پیچیده و پردردسر باشد، اما در واقع از این جهت آن را ساختار پیچیده نامیده اند که بوسیله آن می توان عبارتهای پیچیده را در داخل رشته ها قرار داد.
     هر نوع متغیر اسکالر (Scalar)، آرایه یا یک ویژگی(property) از شی را که به صورت متنی ارائه می شود می توان با استفاده از این ساختار در داخل یک رشته قرار داد. خیلی راحت، عبارت را همانطور که در خارج از ساختار متن به کار می برید در داخل دو علامت آکولاد باز و بسته قرار دهید ({}).
موافقین ۲ مخالفین ۰ ۹۳/۱۲/۰۶
مهرداد یوسفی فرد

نظرات (۰)

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

ارسال نظر

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