Новые книги

Найти нужную и актуальную информацию в Интернете порой очень непросто. Количество информационного мусора в Сети растет как снежный ком, и добраться до данных, которые вам действительно необходимы, используя традиционные Яндекс и Google, иногда просто невозможно. Книга, которую вы держите в руках, позволит увеличить эффективность вашего поиска информации в Интернете во много раз. Здесь описаны приемы, поисковые сайты и программы для специализированного поиска информации. Рассмотрены современные разновидности интернет-поиска: универсальный поиск, вертикальный поиск, метапоисковые системы, построение персональных поисковиков, поиск аудиовизуального контента, поиск по скрытому Интернету. Для всех рассмотренных систем приведены их характеристика и советы по максимально эффективному использованию.
Эта книга исключительна полезна. С одной стороны она про такой хорошо (если не излишне) раскрученный термин как Scrum, на который ведутся большинство (если не все) начальников. С другой стороны, она упирает на то, что Scrum без инженерных практик не живёт. Не знаю сознательно ли Хенрик заложил этот месадж в книгу или так получилось случайно, но получилось именно то, что доктор прописал :-)

Гарантия Безопасной Записи Других Параметров

Гарантия Безопасной Записи Других Параметров

Учебник РНР
Назад Глава 33. Приём аргументов Вперёд

Гарантия безопасной записи других параметров

Вы можете оказаться в ситуации, когда необходимо иметь доступ для записи параметра, который запрашивается функцией zend_get_parameters_ex(), но не передаётся по ссылке. В этом случае вы можете использовать макрос SEPARATE_ZVAL, который выполняет zval-сепарацию в предоставленном контейнере. Вновь генерируемый zval отсоединяется от внутренних данных и имеет только локальную область видимости, что означает, что он может быть изменён или уничтожен без глобальных изменений в контексте скрипта:

zval **parameter;

/* запросить параметр */
zend_get_parameters_ex(1, &parameter);

/* на этом этапе <parameter> всё ещё соединён */
/* с внутренними буферами данных Zend'а */

/* сделать <parameter> write-safe\безопасным для записи */
SEPARATE_ZVAL(parameter);

/* теперь можно безопасно модифицировать <parameter> */
/* без выполнения глобальных изменений */

SEPARATE_ZVAL использует emalloc() для выделения нового zval-контейнера, и это означает, что даже если вы не зачистите память самостоятельно, она будет уничтожена автоматически по окончании работы скрипта. Однако выполнение большого количества вызовов этого макроса без освобождения результирующих контейнеров использует большой объём вашей RAM-памяти.

Примечание: поскольку вы без затруднений можете обойти отсутствие доступа для записи с помощью "традиционного" API (с zend_get_parameters() и т.д.), этот API выглядит устаревшим и не обсуждается в этой главе в дальнейшем.

Назад Оглавление Вперёд
Работа с аргументами, передаваемыми по ссылке Вверх Создание переменных