İstisnalar backtrace Değiştirgeleri eksik

3 Cevap

Ben de örnek kodu çalıştırdığınızda örnek çıkışı olduğu gibi http://us2.php.net/manual/en/exception.gettrace.php Ben, backtrace hayır "args" olsun.

Bu bir PHP hata olduğunu veya bir şey eksik?

Benim çıkış:

array (1) {[0] => array (3) {["file"] => string (25): ["hat"] => int (79) ["D www \ proje \ index.php \" "fonksiyonu"] => string (4) "test"}}

PHP 5.2.8 kullanıyorum.

Edit: örnek çıkış, işleve argüman olan veya olmayan, PHP.net 'in örnek kod çalıştırmasını olduğunu.

3 Cevap

PHP 5.2.9 (XAMPP 1.7.1) yükseltmek için çalıştı, ama işe yaramadı. Ben PHP 5.2.11 çalıştıran bir linux ortamında çalıştım ama, o iş yaptım. Ben aşağıda tam test kodu yayınlanmıştır.

<?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());
    }
}

Tüm yardım için teşekkür ederiz!

Garip Hmm.

(Bir sınıf) aşağıdaki olsa çalışır ... Ama sen bir nomral işlevine aşırı bile hala, args vermelidir.

<?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());
}
?>

Ben sadece benim yerel yükleme denedim, ve ben 5.3 atm koşuyorum rağmen, terfi gibi çalışmıyor gibi görünüyor ...

Hala argümanlar geçti bile, en azından, boş bir dizi vermelidir ...

özel PHP sürümünde bir hata için googling deneyin veya arama php.net bug tracker