Nasıl PHP eval işlevi çalışır?

5 Cevap php

Ben yok eval () işlevi, bir basit bir şekilde nasıl çalıştığını anlamaya çalışıyorum. Ben aşağıdaki kodu denedim ama çalışmıyor, bunun yerine bir ayrıştırma hatası gösterir.

<?php
    $str = "exit()";
    eval($str);
?>

Ne benim koduyla yanlış?

5 Cevap

bence noktalı virgül ihtiyacı

<?php
    $str = "exit();";
    eval($str);
?>

PHP Dokümanlar:

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()

Sadece bir ipucu - eval'ed kod dinamik değerlendirilir ve çöp toplayıcısı kaçmasına.

Hata: "Parse error: syntax error, unexpected $end in Command line code(1)"? Eğer öyleyse, bu size sonuna virgül koymamış çünkü exit().

Yani deneyin:

<?php
    $str = "exit();";
    eval($str);
?>

Umarım bu yardımcı olur.

Bu sonunda bir noktalı virgül gerekir:

ve eval ile sorun web sitenizin aynı anda birçok kullanıcı tarafından vurmak olmayacaktır eğer, bu, bir IL dilden çözümleyici çağırır böylece evalued kodu VSL (çok yavaş dili) olacağını, böylece onun Eğer büyük bir şey yansıtma varsa sorun yok, ama, o zaman ben sadece gerçekten gerekli durumda, eval kullanmayın öneririz.

hope it helps.
Joe

$str = "exit();"; may work. eval() should not be used, except when really necessary.

Ayrıca, çıkış başka bir işlev () kullanmayı deneyin, ya da çıkış işlevine argüman olarak bir dize geçirmek. Aksi halde, ondan bir çıkış görmezsiniz.