$name = 'sunrise';
$template = '<strong>Hello,</strong> $name';
eval('echo "' . $template . '";');
مشکل پيش مياد، مي تونيد امتحان کنيدیک سوال فنی : اگر بجای
PHP:eval('echo "' . $template . '";');
از کد زیر هم استفاده کنیم فکر نکنم مشکلی پیش بیاد :
PHP:echo $template;

مطمئنيد!!! وقتي به اون صورتي که شما بيان کرديد کد نوشته بشه خروجي بصورت زير خواهد بود:تست کردم . مشکل پیش نیومد :d
دليلش هم اين هست که مقادير درون single-quote پارس نميشه و شايد همين وجه تمايزي بين double-quote (") و single-quote (') در PHP باشه.hello, $name
<?php
$name = 'sunrise';
$template = '<strong>Hello,</strong> '.$name.'';
echo $template;
?>
Evaluates the string given in code_str as PHP code. Among other things, this can be useful for storing code in a database text field for later execution.
There are some factors to keep in mind when using eval(). Remember that the string passed must be valid PHP code, including things like terminating statements with a semicolon so the parser doesn't die on the line after the eval(), and properly escaping things in code_str . To mix HTML output and PHP code you can use a closing PHP tag to leave PHP mode.
Also remember that variables given values under eval() will retain these values in the main script afterwards.
اگه به اين صورتي که شما نوشتيد باشه، حق با شماست اما اينطوري که ميشه همون کد php بين تگ هاي html!بله . مطمئنم . اینم دقیقا دستورات فایلم :
PHP:<?php $name = 'sunrise'; $template = '<strong>hello,</strong> '.$name.''; echo $template; ?>
خروجی :
hello, sunrise
منظور من این بود که دستور eval رو حذف کنیم . چون خود دستور eval یک دستور سنگینیه برای apache . استفاده از آن هم بجز در موارد معدودی پیشنهاد نمیشه . حالا حساب کنید اگر برای یک template engine همش از دستور eval استفاده بشه چه فشاری روی سرور میاره !!!! یعنی عملا کار دستور eval اینه که کد های داخل خودشو به همان زبان اجرا می کنه . حتی eval داخل جاوااسکریپت هم استفاده میشه ولی دستورات جاوااسکریپت رو اجرا میکنه . به عبارت بهتر eval میاد بدون تگ <?php ?> دستورات رو run میکنه . اینم منبع :
ممنون . منم قانع شدم . کوچیک شما .اگه به اين صورتي که شما نوشتيد باشه، حق با شماست اما اينطوري که ميشه همون کد php بين تگ هاي html!
البته من با صحبت شما مبني بر اينکه اين دستور، براي آپاچي عمل خيلي سنگيني هست زياد موافق نيستم، البته توصيه نميشه که از يک قطعه کد خيلي طولاني (مثلا بيش از 1000 خط) از اين روش استفاده بشه، ولي براي موردي که من عرض کردم مناسب هست چرا که تعداد متغيرها هم آنقدر زياد نيست در يک تمپليت که موجب بشه بار زيادي روي سرور به اجرا در بياد.









