Работа со строками Учебник PHP

Строки обрабатываются Zend-машиной несколько иначе, чем другие значения, такие как integer, Boolean, etc., которые не требуют дополнительного выделения памяти под хранение своих значений. Если вы хотите возвратить из функции строку, вводите новую строковую переменную в таблицу символов или делаете что-нибудь подобное, вы должны убедиться, что память, которую использует строка, была выделена ранее функциями e*(). (Пока это может быть не очень понятно; просто запомните это - мы вскоре вернёмся к этому вопросу.) Необходимость использования специализированных технических средств для компьютерной графики и анимации

"Расширить PHP" легче сказать, чем сделать. PHP вырос в полноценную утилиту, состоящую из нескольких мегабайт исходного кода. При структурировании этой главы мы остановились на реализации подхода "обучения через выполнение". Это не самый научный и профессиональный подход, но этот метод более привлекателен и даёт наилучший конечный результат.
В последующих разделах вы быстро научитесь, как сделать так, чтобы самые основные расширения работали почти постоянно.
Затем вы узнаете о продвинутой API-функциональности Zend. Альтернативно можно было бы попытаться объединить функциональность, дизайн, подсказки, трюки, и т.п. в единое целое, давая таким образом полный обзор общей картины, прежде чем делать что-либо практически. Хотя это "лучший" метод, поскольку никаких неточностей не будет, он требует больших затрат времени и энергии, почему мы и решили использовать прямой подход. Архитектура Киевской Руси Русское искусство эпохи Средневековья начиная с X в. и вплоть до конца XVII столетия неразрывно связано с Церковью и христианской верой, которую русский народ вслед за своими византийскими учителями называл православной.

Заметьте, что, хотя в этой главе сделана попытка дать как можно больше информации о внутренней работе PHP, невозможно дать абсолютно полный справочник расширения PHP, который обеспечивал бы 100% работоспособность во всех случаях. Можно разобраться в PHP, при таком сложном и объёмном пакете, только в том случае, если вы ознакомитесь с ним практически, поэтому мы советуем вам работать с исходным материалом.

Что такое Zend и что такое PHP?

Имя Zend это имя машины языка, ядра PHP. Термин PHP это вся система целиком. Это не так уж сложно понять (см. Рисунок 9.1). Чтобы реализовать интерпретатор Web-скриптов, необходимы три части:

  1. Интерпретатор анализирует входной код, транслирует и выполняет его. Сопротивление материалов Механические испытания. Статические испытания на растяжение и сжатие Характеристики пластичности определяют способность матерала к деформированию

  2. Функциональность реализует функциональность языка (его функции и т.д.).

  3. Интерфейс взаимодействует с Web-сервером и т.д.

Zend полностью выполняет работу части 1 и частично - части 2; PHP выполняет работу частей 2 и 3. Вместе они образуют законченный пакет PHP. Zend формирует только ядро языка, реализуя PHP в самой основе с помощью некоторых предопределённых функций. PHP содержит все модули, которые реально создают свойства языка

Zend-машина

Разумеется, расширения могут быть реализованы непосредственно в Zend-машине. Эта стратегия хороша, если необходимо изменить поведение языка или нужны специальные функции, встроенные непосредственно в ядро языка. Вообще лучше исключить модификацию Zend-машины. Эти изменения могут привести к несовместимости с остальным миром. Модификации могут быть исключены из главных исходников PHP и переопределяются при следующем обновлении с использованием "официальных" исходников. Следовательно, этот метод можно считать неправильной практикой и, из-за его редкого применения, мы не рассматриваем его в этой книге.

Внешние модули

Внешние модули можно загружать в ходе работы скрипта через использование функции dl(). Эта функция загружает совместно используемый/shared объект с диска и делает его функциональность доступной скрипту, с которым она связывается. После завершения работы скрипта внешний модуль выгружается из памяти. Этот метод имеет как преимущества, так и недостатки, как показано в таблице:
ПреимуществаНедостатки
Внешние модули не требуют перекомпиляции PHP.Совместно используемые объекты должны загружаться всякий раз при выполнении скрипта (при каждом его запуске), что очень медленно.
Размер PHP остаётся небольшим за счёт вынесения вовне определённой функциональности.Внешние файлы занимают дисковое пространство.
 Каждый скрипт, который хочет использовать функциональность внешнего модуля, должен специально включать вызов dl(), либо тэг extension в php.ini должен быть изменён (что не всегда является подходящим решением).

Суммируя сказанное: внешние модули подходят для создания продуктов сторонних производителей, небольших редко используемых дополнений к PHP или для целей тестирования. При быстрой разработке внешней функциональности внешние модули дают наилучшие результаты. При частом использовании, больших реализациях и сложном коде недостатки перевешивают достоинства.

Можно использовать тэг extension в php.ini для создания дополнительных внешних модулей для PHP. Эти внешние модули полностью отделены от основного пакета, что очень удобно при разработке коммерческих приложений. Коммерческие дистрибьюторы могут распространять диски или архивы, содержащие только их дополнительные модули без необходимости создавать фиксированные и объёмные исполняемые файлы PHP, не позволяющие подключать другие модули.

Математика решение задач