Я только что проверил ваш второй код, и он работает, правильно передавая $limit
:
<?php
$limit = 10;
$what = create_function('$a', 'return '.'"'." LIMIT '$limit'".'"'.';');
echo $what(2);// note: `2` was randomly chosen, and used because $what expects an argument
// result: ` LIMIT '10'`
?>
Приведенную выше строку $what
можно переписать как:
$what = create_function('$a', 'return "' . " LIMIT '$limit'" . '";');
Остерегайтесь, что вы случайно не напишите его как (обратите внимание на символы кавычки вокруг $limit
:
$what = create_function('$a', 'return "' . ' LIMIT "$limit"' . '";');
В этом случае $limit
не заменяется на 10
(значение $limit
).