Szukałem i testowałem przez jakiś czas i po prostu nie mogę stwierdzić, czy to, co próbuję osiągnąć, jest możliwe w sposób, w jaki to robię.Instrukcja Ternary PHP w tablicy asocjacyjnej, aby ustawić zarówno klucz i wartość?
Chciałbym dodać parę klucz/wartość do tablicy, definiując tablicę, na podstawie instrukcji trójskładnikowej.
Array(
'Item 1' => 'Some value',
(FALSE)? NULL : 'Item 2' => 'Another Value'
)
Moja oczekiwano/chciał zachowanie jest wynikiem aby następnie być:
Array (
[Item 1] => Some value
[Item 2] => Another Value
)
A gdy stwierdzenie jest prawdziwe:
Array(
'Item 1' => 'Some value',
(TRUE)? NULL : 'Item 2' => 'Another Value'
)
Wydajność:
Array (
[Item 1] => Some value
)
Ale zamiast tego otrzymuję:
Array (
[Item 1] => Some value
[] => Another Value
)
co powoduje problemy od A) Nie chcę tego drugiego elementu istnieć w pierwszej kolejności oraz b) Fałsz wartość warunek jest przypisany do Prawdziwego warunki wartość (w tym przypadku null, która ustawia klucz do NULL [])
To jest bardzo dziwne. Czy moja jedyna opcja ma standardową instrukcję if() {} i Pop element, jeśli warunek jest fałszywy (przy użyciu!) Do tablicy?
Uwaga: posiadanie wartości pustej dla pozycji 2 jest niedopuszczalne, a jeśli warunek początkowy jest prawdziwy, żaden element nie powinien w ogóle istnieć.
Każda pomoc będzie bardzo ceniona!
99% pewien, że to nie jest możliwe, to znaczy, że trzeba użyć 'if'. Zastanowię się jeszcze trochę i zobaczę, czy mogę to zrobić lepiej. – Austin
Nie jest to możliwe. Albo dodajesz element do tablicy, albo nie; nie ma sposobu, aby zrobić to warunkowo. Czym właściwie jest problem z używaniem instrukcji "if", w każdym razie ...? Robi to doskonale (niektórzy twierdzą nawet, że jest bardziej intuicyjny niż trójkowy). –
To rzeczywiście [jest możliwe] (http://stackoverflow.com/a/29327671/367456), ale normalnie nie chcesz tego robić./cc @Austin – hakre