Описание тега php-internals
How the PHP programming language works underneath, and questions about the underlying C code.
41
ответ
Что значит "zend_mm_heap поврежден"
Внезапно у меня возникли проблемы с моим заявлением, которых у меня никогда не было раньше. Я решил проверить журнал ошибок Apache и обнаружил сообщение об ошибке "zend_mm_heap поврежден". Что это значит. ОС: Fedora Core 8 Apache: 2.2.9 PHP: 5.2.6
11 фев '10 в 21:49
1
ответ
Почему важен порядок аргументов в PHP-функции hash_equals()?
PHP 5.6 введен hash_equals() функция для безопасного сравнения хэшей паролей и предотвращения временных атак. Его подпись: bool hash_equals(string $known_string, string $user_string) Как описано в документации, $known_string а также $user_string дол…
12 янв '15 в 22:08
1
ответ
Попытка регенерировать zend_language_scanner.c
Я пытаюсь добавить новое ключевое слово в PHP (просто изучая ядро), поэтому я сделал следующее: добавил новый токен в zend_language_parser.y, использовал его в unticket_statement, скомпилировал PHP, но это не сработало. Похоже, мне нужно добавить эт…
16 апр '13 в 08:48
2
ответа
Получить возвращаемое значение функции в расширении PHP C++
Я создал расширение php в C++, которое отслеживает граф вызовов каждого запроса (centos7-64 bit,PHP5.6). И теперь я хочу получить возвращаемое функцией значение каждой функции. Это можно сделать с помощью структуры zend_excute_data (original_return_…
20 ноя '18 в 12:29
1
ответ
Оптимизирует ли движок PHP анонимные функции внутри циклов?
У меня есть массив, который хранит несколько ссылок на одну анонимную функцию: $fns = array(); //some code $fn = function(){ echo 'this is closure 12345... < 67890'; // etc etc.. }; for($x=12345; $x<67890; ++$x){ $fns[$x] = $fn; } Как видно, м…
05 авг '13 в 05:50
2
ответа
PHP читает функции до их вызова?
Я объявляю 100 функций, но на самом деле я не вызываю ни одну из них. Будет ли иметь так много определенных функций влиять на время загрузки? Обрабатывает ли PHP эти функции до их вызова?
20 июл '16 в 07:34
0
ответов
Объяснение поведения формата года для PHP DateTime
Использование ISO 8601 для управления форматами даты и времени У меня проблемы с датами "только год". Пример: new DateTime(2013); дай мне: DateTime Object ( [date] => 2017-11-27 20:13:00.000000 [timezone_type] => 3 [timezone] => Europe/Pari…
27 ноя '17 в 14:36
1
ответ
Где находится основная точка входа php-src/PHP-Internals
Какая функция или фрагмент кода служит основной точкой входа для выполнения / интерпретации PHP-программы в самом источнике PHP? Основываясь на вещах, которые я гуглил или читал в книгах, я знаю, что PHP предназначен для работы с каким-либо сервером…
22 фев '18 в 16:39
1
ответ
Путаница с использованием xdebug_debug_zval между refcount и is_ref
Я использую xdebug_debug_zval чтобы понять, как ссылки изменились между PHP 5 и PHP 7. <?php $array = array('k1', 'k2', 'k3'); echo PHP_VERSION. '<br/>'; foreach ($array as &$ref) { } unset($ref); xdebug_debug_zval('ref'); xdebug_debug_…
24 ноя '17 в 08:14
1
ответ
Создать расширение PHP
Попытка создать простое PHP-расширение Hello World в соответствии с руководством. config.m4 PHP_ARG_ENABLE(hello, whether to enable Hello World support, [ --enable-hello Enable Hello World support]) if test "$PHP_HELLO" = "yes"; then AC_DEFINE(HAVE_…
26 окт '15 в 13:22
2
ответа
Сделать ZVAL постоянным в SAPI?
ZVAL обычно создается с помощью emalloc, поэтому он уничтожается в конце запроса страницы. Есть ли способ взять существующий ZVAL и сохранить его в SAPI (эквивалент pemalloc)? Как насчет создания ZVAL с pemalloc? В идеале то, что я хотел бы сделать …
03 апр '12 в 22:28
1
ответ
Попробуйте написать внутреннюю функцию в расширении PHP, результаты сообщили об утечке памяти, искали долго, не нашли причину
Недавно я прочитал книгу о расширениях PHP и готов написать функцию, прототип функции выглядит следующим образом: array_groupBy(string $key, array $input, $forget = false):array Функция этой функции состоит в том, чтобы сгруппировать $input в соотве…
14 июл '17 в 10:18
0
ответов
Связывание Lame.h с расширением PHP
Я пытаюсь разработать свое первое расширение PHP. Он использует Lame, поэтому я установил liblame-dev. Lame.h находится по адресу /usr/include/lame/ В моем config.m4 LIBNAME=lame PHP_ADD_LIBRARY($LIBNAME) Он строит, но что-то идет не так при запуске…
27 мар '13 в 17:13
1
ответ
Попробуйте встроить мой C-код в PHP-скрипт
Я учусь использовать SWIG и пишу php-оболочку для библиотеки C. Расширение успешно компилируется, но когда я пытаюсь вызвать функцию, я получаю эту ошибку: php: ошибка поиска символа: /usr/lib/php5/20090626+lfs/fact.so: неопределенный символ: факт
30 мар '11 в 11:49
0
ответов
Где хранятся скомпилированные функции?
Я пытаюсь понять, как PHP работает внутри. Я написал расширение Zend и удалил "zend_compile_file", затем сбросил возвращенный zend_op_array*. Я думаю, что понимаю большую часть происходящего, но пока не понимаю, где в этой структуре будут находиться…
19 авг '18 в 01:49
2
ответа
Почему этот правильный код PHP
Поместите это в интерпретатор PHP, и он не покажет никаких ошибок. Это не выглядит правильным для меня. Кто-нибудь может пролить свет на то, почему это работает? Я действительно ищу понимание лексера / парсера. <?php -01;[];[];[];4;[[-1]];
07 ноя '14 в 21:26
1
ответ
Вызовите конструктор объекта (__construct) из расширения php
Я просто экспериментирую с расширением PHP, и я хотел бы знать, каков рекомендуемый / предпочтительный способ вызова конструктора объекта внутри расширения. Я читал, что при вызове функции object_init_ex конструктор этого объекта не вызывается автом…
06 сен '16 в 20:39
0
ответов
Как правильно добавить элементы в пустой массив, переданный в функцию расширения в PHP 7.3?
Я пытаюсь перенести мое старое расширение PHP, работающее на PHP 5.4, на PHP 7.3 (точнее, 7.3.0 RC3). Я строю расширение, используя Visual Studio 2017 для Windows 10 Pro x64, для архитектур x64 и x86. Расширение предоставляет простую функцию (среди …
24 окт '18 в 11:58
1
ответ
Расширение php для замены метода класса PHP на обработчик, написанный на C
Мой уровень опыта: очень комфортно с C, новичок в PHP, новичок и очень разочарован в Zend Engine (нет документации?) Я пытаюсь написать свое первое расширение PHP, и мне интересно, возможно ли следующее. PHP-код, иллюстрирующий мою цель: class MyCla…
11 май '13 в 06:18
3
ответа
Сессии PHP не сохраняются
У меня есть обе страницы, но $_SESSION["1"] не получен во втором. Мой вопрос не имеет ничего общего с "данными сеанса PHP не сохраняются", перестаньте помечать их как дубликаты! ОБНОВЛЕНИЕ: Оказывается, что если я наберу номер в сеансе, он не будет …
07 сен '13 в 01:54