Como ver endereço de memória de um objeto no Xdebug / PHPStorm

0

Existe alguma maneira de ver o endereço de memória alocado de uma variável, objeto ao depurar com Xdebug e PHPStorm?

Não sei se esta é uma configuração no Xdebug ou PHPstorm, mas tenho certeza que é possível Agora apenas mostra o valor e não o endereço ..

Meu objetivo é ver se estou realmente usando a mesma instância de um objeto em outra classe

    
por PartySoft 31.08.2015 / 22:19

2 respostas

1

Eu tenho certeza que você já percebeu isso agora, mas caso você não tenha (e para fornecer uma pergunta solitária com uma resposta)

(isto assume que você já tem o xdebug trabalhando com o PHPStorm, e é capaz de depurar através do PHPStorm)
Na versão atual do PHPStorm (10.0 a partir do momento desta escrita), na janela de depuração, há um círculo amarelo com um "@" nele. Clicando em que irá mostrar os endereços de memória.

Nos meus exemplos abaixo, observe meu objeto $ds . Apenas lista a classe ( DBConnection ). Depois de ligar os endereços, você pode vê-los. ( DBConnection@69796600 )

    
por 02.12.2015 / 21:34
1

Não cometa o mesmo erro que eu. O endereço do objeto pode ser diferente enquanto o objeto é o mesmo (isto é, spl_object_hash retorna o mesmo id para os dois objetos).

Por exemplo, eu escrevi este teste:

$a = $b = new StdClass;
$objects = [$a, $b];

var_dump(spl_object_hash($a), spl_object_hash($b));

foreach ($objects as $object1);

var_dump(spl_object_hash($a), spl_object_hash($b));

foreach ($objects as &$object2);

var_dump(spl_object_hash($a), spl_object_hash($b));

Como esperado, o id retornado por spl_object_hash () é o mesmo de $ a, $ b e os objetos em $ objects. Mas o endereço dos objetos em $ objects não é o mesmo que $ a e $ b:

string(32) "000000007fbf1856000000002722d91d"
string(32) "000000007fbf1856000000002722d91d"
string(32) "000000007fbf1856000000002722d91d"
string(32) "000000007fbf1856000000002722d91d"
string(32) "000000007fbf1856000000002722d91d"
string(32) "000000007fbf1856000000002722d91d"

    
por 10.12.2015 / 15:26