Neden $ $ var ['namedIndex'] = 'test' çalışmıyor ki?

2 Cevap

Siz yapabilirsiniz PHP

$var = 'title';
$$var = 'my new title'; 

ve iyi çalışıyor. Eğer dizi ile kullanmaya çalıştığınızda Ama çalışmıyor ve hiçbir hata raporlanır.

$var = 'title';
$$var['en'] = 'my english title';

$var = 'description';
$$var['en'] = 'my english description';

Yardımlarınız için teşekkürler

[EDIT] If I do

$$var = array();
array_push($$var,'test');

çalıştığını ve bunun çıkışları

title[0] = 'test';

Ama gerçekten adında bir dizin gerekir: /

2 Cevap

bu gibi yazmak:

${$var}['en']

docs:

In order to use variable variables with arrays, you have to resolve an ambiguity problem. That is, if you write $$a[1] then the parser needs to know if you meant to use $a[1] as a variable, or if you wanted $$a as the variable and then the [1] index from that variable. The syntax for resolving this ambiguity is: ${$a[1]} for the first case and ${$a}[1] for the second.

Link For Reference

Gerçekten ne istiyorum:

${$var}['en']

Sorun, kılavuzda belirtildiği gibi, belirsizlik olduğunu. Ne zaman yazmak $$var['en'], bu $var['en'] ilk ve o endeksin değeri adıyla bir değişken bulmak değerini bulmaya çalışır. Parantezi ${$var}['en'] Eğer $var ilk genişletilmiş istediğini gösteriyor.