Когда я запускаю пример кода по адресу http://us2.php.net/manual /en/exception.gettrace.php Я не получаю аргументов в обратной трассировке, как в выходных данных примера.
Это ошибка PHP или мне что-то не хватает?
Мой вывод:
array (1) {[0] => array (3) {["file"] => строка (25) "D: \ www \ project \ index.php" ["line"] => int (79) [ "функция"] => строка (4) "тест"}}
Я использую PHP 5.2.8.
Изменить: Пример выходных данных - это запуск кода примера PHP.net с аргументами функции или без них.
3 ответа
Я попытался перейти на PHP 5.2.9 (XAMPP 1.7.1), но это не сработало. Но когда я попробовал среду Linux, работающую под управлением PHP 5.2.11, это сработало. Я разместил полный тестовый код ниже.
<?php
error_reporting(E_ALL | E_STRICT);
header('Content-type: text/plain; charset=utf-8');
function a($a) {
throw new Exception2('EXCEPTION MESSAGE');
}
function b($b) {
a($b);
}
try {
b('THIS PARAMETER SHOULD SHOW UP');
} catch(Exception $e) {
var_dump($e);
}
class Exception2 extends Exception
{
public function __construct()
{
$args = func_get_args();
call_user_func_array(array($this, 'parent::__construct'), $args);
var_dump(debug_backtrace());
}
}
Спасибо за вашу помощь!
Хм, странно.
Следующий (класс) действительно работает ... Но он все равно должен выдавать аргументы, даже если вы перегрузите его до нормальной функции.
<?php
class Test{
function __construct($arg){
$this->test($arg);
}
function test($args) {
throw new Exception;
}
}
try {
new Test('Yar');
} catch(Exception $e) {
//print_r(debug_backtrace());
var_dump($e->getTrace());
}
?>
Я только что попробовал его на своей локальной установке, и, похоже, он работает как рекламируемый, хотя я использую 5,3 атм ...
Он по-прежнему должен выдавать хотя бы пустой массив, даже если аргументы не переданы ...
Попробуйте поискать в Google ошибку в вашей конкретной версии PHP или выполните поиск в системе отслеживания ошибок php.net
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.