Php ve makrolar (peltek tarzı)?

3 Cevap php

Hi im öğrenme LISP ve iyi, bütün gün ben bir yaşam için php programı, bu yüzden php.net ile karıştırmasını ve eval işlevini bulundu ... bu yüzden çevresinde oynamaya başladı!

Ben çılgın şeyler yapmak için eval nasıl kullanılacağı hakkında daha fazla bilmek isterdim, ben bu ve her şeyi ile işlevlerini yapabilir biliyorum ... ama sonraki kod alışkanlık işe neden sormak istedim:

$var = "echo \"FOZZ\";";
for($i = 0; $i < 100; $i++)
    $var  = "eval(\"".$var."\");";
print $var;   
eval($var);

Ayrıca ne diğer şeyler eval ile ilginç!

3 Cevap

Sizin ifadesi '(, ");" "eval (" echo "Fozz") eval' çıkıyor. Sizin çift tırnak birbirine müdahale ve hataya neden oluyor.

Sen = $ var ilk satırı değişiyor denemek isteyebilirsiniz "echo \ 'Fozz \';";

Not: eval kullanırken dikkatli olun.

Web programlama ortak durum için Ive kolay çok daha okunabilir geleneksel yaklaşım olabilir ki, lisp-aromalı PHP kodu yazmak için yapar xilla_tags adında bir kütüphane geliştirdi.

Xilla_tags görmek için xilla tags sample.

PHP lisp tarzı ile ilgili, Jacob Hannsen daha genel bir durum için yaptığı bitchware sitesinde harika bir yazı vardır.

Eğer tırnaklar tırnak kaçmak gerekir, çünkü bu iş olmaz. $var tırnak içerdiğinden, eval başka bir katman içine doldurma her tekrarda tırnak kaçmak gerekir.

Ama ne olursa olsun, ben aşırı böyle eval() kullanarak affetmek yok. Bir kez bile kullanmadan nadir ve sadece en gerekli durumlarda yapılabilir olmalıdır. eval() herhangi bir programlama dilinde bir accident olacağını bekliyor.