Не удалось присвоить значение двумерного массива переменной в php - PullRequest
0 голосов
/ 06 октября 2018

Сегодня я пришел со следующей вставкой.

У меня есть следующий метод:

public function setTypeValidation ( array $meta, mixed $argument ) {

  if ( isset ( $meta [ "@var" ] ) ) {

    if ( \is_array ( $meta [ "@var" ] ) ) {

      if ( isset ( $meta [ "@var" ] [ 0 ] ) ) {

        $auxMeta = $meta [ "@var" ] [ 0 ];
        
      } else {

        throw new Exception ();
      }
    }
  } else {
    
    throw new Exception ();
  }

  // code to validate data types
}

Проблема возникает, когда я делаю назначение

$auxMeta = $meta [ "@var" ] [ 0 ];

Когдазагрузка страницы обрабатывается в течение минуты, и браузер показывает мне следующее:

This page does not work
localhost has not sent any data.

А затем проверяет /var/log/apache2/error.log, это ошибка, которая показывает мне

[core: notice] [pid 8645] AH00052: child pid 12145 exit signal Segmentation fault (11)

В течение нескольких дней я искал ответ на эту ошибку, но ничего, что не помогло бы мне эффективно решить эту проблему.Следует отметить, что конфигурация php, которую я использую, является стандартной конфигурацией, как и конфигурация apache.С другой стороны, на этом же форуме я получил форму, модифицирующую директиву php «memory_limit», а также модифицирующую директиву php «zend.enable_gc», но ни одна из них мне не сильно помогла.Если только я изменю «zend.enable_gc = Off», обработка метода не займет много времени, но в конечном итоге страница останется на странице.

Теперь, если я выполню следующий тест:

\var_dump ( $meta );

Это показывает мне следующее:

array ( size = 3 )
  '@string' => boolean true
  '@readwrite' => boolean true
  '@var' =>
    array ( size = 1 )
      0 => string 'string' ( length = 6 )

И это хорошо, потому что это информация, которую приносит договоренность.Даже если я проведу этот другой тест:

\var_dump ( $meta [ "@var" ] [ 0 ] );

Он покажет мне следующее:

/var/www/html/ecomod/sys/core/Inspector.php:445:string 'string' (length = 6)

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

Еще один дополнительный факт заключается в том, что если я выполняю ту же процедуру вне метода, то есть в плоском сценарии, еслион работает правильно.

Что здесь может происходить?

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...