Articles of eval

Какова альтернатива функции eval?

Я использую eval() в своем текущем проекте следующим образом: if (class_exists($class_name)) //$class_name depends on user input eval($class_name.'::MyStaticMethod()'); eval() выполняется тогда и только тогда, когда существует класс с именем $class_name поэтому он безопасен, но я все же не думаю, что это лучшее решение. Могу ли я сделать то же, что делает код выше без eval() ?

Массив: заданное значение с использованием точечной нотации?

Заглянув в документацию Коханы, я нашел эту полезную функцию, которую они используют для получения значений из многомерного массива с использованием точечной нотации, например: $foo = array('bar' => array('color' => 'green', 'size' => 'M')); $value = path($foo, 'bar.color', NULL , '.'); // $value now is 'green' Мне интересно, есть ли способ установить значение массива таким же […]

создать экземпляр класса из переменной в PHP?

Я знаю, что этот вопрос звучит довольно расплывчато, поэтому я сделаю это более понятным с примера: $var = 'bar'; $bar = new {$var}Class('var for __construct()'); //$bar = new barClass('var for __construct()'); Это то, что я хочу сделать. Как бы вы это сделали? Я не мог использовать eval () следующим образом: $var = 'bar'; eval('$bar = […]

Выполнить PHP-код в строке

Я сохранил содержимое своей страницы в базе данных и хотел бы выполнить любой PHP-код в строке. Итак, если моя строка была: <h1>Welcome</h1><?php echo $motto?><br/> Я только хочу выполнить echo $motto . Использование eval () попытается выполнить <h1>Welcome</h1> . Любой способ сделать это?

Обработка математических уравнений в php

Пользователю разрешено вводить любое математическое уравнение, которое им нравится (с одной переменной): x + 5 1 – x/2 (x/3) * (56/13) Они хранятся в виде строк в базе данных. Когда они извлекаются, мне нужно подставить «x» для числа и проверить значение уравнения. Как я могу это сделать? Я подумывал написать парсер для деконструкции строк и […]

Dirt-простые шаблоны PHP … может ли это работать без `eval`?

Обновление – спасибо за все ответы. Этот Q становится грязным, поэтому я начал сиквел, если кому-то это интересно. Я собрал быстрый сценарий для друга и наткнулся на действительно простой способ делать шаблоны в PHP. В принципе, идея состоит в том, чтобы проанализировать html-документ как строку heredoc, поэтому переменные внутри него будут расширены PHP. Функция пересылки […]

PHP: эквивалент включения использования eval

Если код тот же, то существует разница между: include 'external.php'; а также eval('?>' . file_get_contents('external.php') . '<?php'); В чем разница? Кто-нибудь знает? Я знаю, что они разные, потому что include работает нормально, и eval дает ошибку. Когда я изначально задал вопрос, я не был уверен, что он дал ошибку во всем коде или просто на […]

Как запустить php-код из file_get_contents или файла в функции

Я создаю свой собственный шаблон MVC, чтобы облегчить процесс создания домашних страниц. Моя система шаблонов требует моего класса контроллера для вывода моих просмотров. Это означает, что я должен выводить файл через php-функцию. Я искал какое-то время и не могу найти решение. Как я могу через функцию PHP запустить строку, представляющую некоторый исходный код («<?», «<? […]

Являются ли динамические подготовленные заявления плохими? (с php + mysqli)

Мне нравится гибкость Dynamic SQL, и мне нравится безопасность + улучшенная производительность подготовленных заявлений. Так что я действительно хочу, это динамические подготовленные заявления, что сложно сделать, потому что bind_param и bind_result принимают «фиксированное» количество аргументов. Поэтому я использовал инструкцию eval (), чтобы обойти эту проблему. Но я чувствую, что это плохая идея. Вот пример кода, […]

PHP eval и фиксация ошибок (насколько это возможно)

Отказ от ответственности ; Я полностью осознаю подводные камни и «зла» eval, включая, помимо прочего, проблемы производительности, безопасности, мобильности и т. Д. Проблема Чтение руководства PHP по eval … eval () возвращает NULL, если в вычисленном коде не вызван возврат, и в этом случае возвращается значение, переданное в return. Если в оцененном коде есть ошибка […]