У меня на 5.3, 5.6, 7.0 работает. Может где-то в коде эта переменная у вас меняется и к тому моменту, как вызывается функция, то значение значение уже другое?
Согласен. Нельзя. С этим придётся жить, смиритесь.
Но обойти можно: в интерфейсе не задавать тайпхинты для аргументов, а в реализации делать валидацию типов в теле метода. Просто если вам приходится делать подобное, то, скорее всего, у вас что-то не то в архитектуре кода.
Или можно не пользоваться интерфейсами.
Stasgar , нет, global создаёт ссылку во внутреннем скопе на внешнюю переменную. Т.е. подключает для использования глобальную переменную, используемые глобальные переменные следует явно подключать.
Ключевое слово use применимо лишь для анонимных функций, для обычных не работает.
Я бы предпочёл передавать параметрами, нежели использовать глобальное состояние.
Да, собственно и хотел посмотреть в списке экстеншенов наличие xdebug.
Он не нужен в проде от слова "совсем": даже в "выключенном" состоянии всё-равно замедляет пыху в разы.
Если не используете расшение pthreads, то не ставьте PHP собранный с поддержкой zts (zts тоже замедляет), а так же в проде не нужен PHP скомпилированный с опцией --enable-debug
Просто ваши критерии слишком размыты и непонятны (точнее говоря понятны только вам). Посмотрите на packagist и на stream wrapper
Уверен, что что-нибудь там да найдётся.
Но есть момент: если у вас шаред-хостинг, то может оказаться, что ранкит так просто не поставить.
В таком случае да, придётся воспользоваться nikic/PHP-Parser
Я прочитал. И, если я правильно понял вопрос, то ответ тот же: eval для выполнения кода и runkit для создания песочницы: белый список функций, классов,... php.net/manual/en/runkit.sandbox.php
Чтобы ограничить доступ к переменным. Да, видимо нужна обёртка в функцию.
Мой коммент, конечно, не в тему и не относится, к сути вопроса, но форма "peoples" употребляется только в значении "народ", "нация". Во всех остальных случаях "people" - "люди" - это уже множественное число.
У меня на 5.3, 5.6, 7.0 работает. Может где-то в коде эта переменная у вас меняется и к тому моменту, как вызывается функция, то значение значение уже другое?