Bonjour, j'ai un petit problème avec la pile d'appel, je n'arrive pas à récupérer une ligne spécifique.

Dans cette configuration :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class A
{
	public function __construct()
	{
		try
		{
			B::doSomething();
		}
		catch (Exception $e)
		{
			B::log($e);
		}
	}
}
 
class B
{
	static function doSomething() { throw new Exception(); }
 
	static function log($e)
	{
	    echo 'line '.$e -> getLine()."\n";
            $s = debug_backtrace();
            foreach ($s as $i) echo 'line '.$i['line']."\n";
	}
}
 
$a = new A();
...j'aimerais récupérer la ligne B::doSomething() (nécessaire quand le bloc try fait 15 km) dans la classe A mais j'obtiens quelque chose de ce type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
line 18 // throw new Exception();
line 11 // B::log($e);
line 28 // $a = new A();
Donc pourquoi je ne peux pas obtenir la ligne 7 entre les deux premières ?

Merci.