2011-07-11 12 views
19

po prostu natrafiamy na coś, czego nigdy wcześniej nie spotkałem. Mam wartość w mojej tabeli "Device Vendor" i zwracam dane os obiektu.mySql PHP - zwracamy wartość obiektu z spacją w kluczu

zwykle nazywam się $ob->var_name, ale oczywiście $ob->Device Vendor nie będzie działać.

Jak zwrócić wartość?

Pozdrowienia

+0

nie spróbować u $ ob -> „Vendor Device” –

+0

nie jestem pewien, ale czy próbowałeś '$ obj -> "Dostawca urządzenia"? – ianbarker

Odpowiedz

40

użyć następującej składni

$ob->{'Device Vendor'} 
9

Składnia jest następująca:

$ob->{'Device Vendor'} 

Mam twardy czas próbuje znaleźć wyraźne odniesienie do tego w Instrukcja PHP. Obawiam się, że należy go wywnioskować i możesz to zrobić tylko, jeśli znasz już odpowiedź. Pod numerem Classes and Objects-> Properties podano:

Zmienne składowe klasy są nazywane "właściwościami". [...] Są one zdefiniowane jako za pomocą jednego ze słów kluczowych public, protected lub private, po którym następuje przez zwykłą deklarację zmiennej.

Reguły, które stosuje teraz Variable variables:

Aby wykorzystać zmienne zmienne z tablic, trzeba rozwiązać problem dwuznaczności. Oznacza to, że jeśli napiszesz $$ a 1, to parser potrzebuje , aby wiedzieć, czy chcesz użyć $ a 1 jako zmiennej, czy też chcesz, aby $$ to jako zmienna, a następnie indeks 1 z tej zmiennej. Składnia dla rozwiązania tej niejednoznaczności to: $ {$ a 1} dla pierwszego przypadku i $ {$ a} 1 dla drugiego.

Zasadniczo nadużywamy zmiennych zmiennych, więc możemy użyć spacji.

+0

Bardzo interesujące dzięki +1 –

0

Zamień spacje podkreślenia w nazwie nieruchomości z nazwy właściwości we wszystkich małych liter:

if $property = 'Device Vendor'; 

    use $property = 'device_vendor'; 
    $ob->{$property};