pedia-learning

ورود

گذرواژه‌تان را فراموش کرده‌اید؟

ثبت نام

ثبت نام
انجمن عمومی گسترش فناوری آگو

اگر اولین بار از انجمن بازدید می کنید برای دسترسی کامل به انجمن عضو شوید بعد عضویت قادر به ارسال مطلب و شرکت در بحث خواهید داشت

ارسال پاسخ 
 
امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Heredocs و Nowdocs در PHP
02-17-2014, 07:44 PM
ارسال: #1
Heredocs و Nowdocs در PHP
Heredoc یکی از زاههای تعریف رشته های بزرگ در PHP است. این روش تعریف رشته در سیستم عامل های لینوکس و ویندوز و همچنین در زبانهای برنامه نویسی Perl , Python , Ruby نیز کاربرد دارد.در ادامه با این دو ابزار در PHP آشنا خواهید شد

heredoc به این صورت تعریف میشه که ابتدا سه علامت کوچکتر (>>>) سپس یک نام یا مشخصه برای رشته مورد نظرمون در نظر میگیریم.

بعد از نوشتن رشته در انتها نام یا مشخصه ای که در ابتدا مشخص کردیم رو در انتهای رشته قرار میدیم.

کد php:
<?php
$str 
= <<<DEMO
This is a
demo message
with heredoc.
DEMO;

echo 
$str;
?>

در مثال بالا ابتدا ۳ علامت کوچکتر سپس شناسه DEMO در ابتدا و انتهای رشته قرار گرفته.

نکته ای که در مورد heredoc باید در نظر داشته باشید اینه که heredoc مثل دابل کوتیشین (” “) عمل میکنه. یعنی محتویات داخل heredoc پردازش میشن.
مثلا زیر رو ببینید :

کد php:
<?php
$name 
"Max";
$str = <<<DEMO
Hello $name! <br/>
This is a
demo message
with heredoc.
DEMO;

echo 
$str

میبینید که به جای متغیر $name مقدار این متغیر در هنام چاپ نمایش داده میشه.

Nowdoc
این هم یکی دیگه از زوشهای تعریف رشته های بزرگ در php که تقریبا مثل heredoc تعریف و استفاده میشه.
تفاوت nowdoc با heredoc در اینه که nowdoc مثل تک کوتیشن عمل میکنه و مجتویات داخلش پردازش نمیشن.
برای تعریف nowdoc ابتدا سه علامت کوچکتر (>>>) سپس نام یا مشخصه که در nowdoc باید مشخصه بین تک کوتیشن قرار بگیره.
مثال :

کد php:
<?php
$str 
= <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
EOD; 

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

کد php:
<?php
    $name 
"Max";

$str = <<<'EOD'
Hello $name! <br/>
This is a
demo message
with heredoc
EOD;

    echo 
$str
نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان


Persian Translation by MyBBIran.com - Ver: 4.1
Powered by MyBB, © 2002-2024 MyBB Group.
Theme designed by Marvel (Sidebar created by Yaldaram - Yaldaram.com)
Theme Translation by Mt Edition