Articles of язык дизайн

Лучший способ реализовать метаязык, скомпилированный до PHP

Я работал над спецификацией / kitchensink для метаязыка, который может скомпилироваться до PHP уже некоторое время. Теперь я хочу начать строить вещь. Прежде чем я применил крошечные DSL, используя PHP_Lexergenerator и PHP_Parsergenerator, и они отлично поработали, но я никогда не строил ничего такого масштаба раньше. Я был бы признателен за любые отзывы / предложения / […]

Преодоление путаницы сена в холле в PHP

Каков наиболее практичный способ преодоления путаницы сена на сцене в PHP? Здесь $ needle – первый аргумент bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) Здесь $ needle – второй аргумент string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )

Какой смысл иметь $ this и self :: в PHP?

Почему PHP требует от вас явно писать $this ? Я бы понял, если бы вам пришлось использовать $this здесь: function foo($bar) { $this->bar = $bar; } Но вы должны написать это явно в подробном коде, который выглядит так: $this->var3 = globalFun($this->var, $this->var2[$this->anotherVar], $this->method()); в отличие от: $var3 = globaFun($var, $var2[$anotherVar], method()); Так в чем смысл […]

Глобальные функции PHP

Какова польза глобального ключевого слова ? Есть ли какие-то причины предпочесть один метод другому? Безопасность? Представление? Что-нибудь еще? Способ 1: function exempleConcat($str1, $str2) { return $str1.$str2; } Способ 2: function exempleConcat() { global $str1, $str2; return $str1.$str2; } Когда имеет смысл использовать global ? Для меня это кажется опасным … но это может быть просто […]

Что делает PHP медленнее, чем Java или C #?

Это то, что я всегда задавал себе вопрос: почему PHP медленнее, чем Java или C #, если все 3 из этих языков скомпилированы до байт-кода и затем выполнены оттуда? Я знаю, что обычно PHP перекомпилирует каждый файл с каждым запросом, но даже когда вы добавляете APC (кэш байт-кода) в изображение, производительность нигде не приближается к […]