![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Witam,
mam problem, z którym walczę i nie wiem jak go obejść :| Do funkcji przekazuję pary parametrów stylów CSS w postaci stdClass (zamieszczam wyniki var_dump) jako $property oraz $value: Kod object(stdClass)#62 (2) { ["0"]=> string(5) "color" ["1"]=> string(11) "font-weight" } object(stdClass)#63 (2) { ["0"]=> string(7) "#CF1020" ["1"]=> string(4) "bold" } Wewnątrz funkcji, do której je przekazuje rzutuję je na tablice: w wyniku czego dostaję: Kod array(2) { ["0"]=> string(5) "color" ["1"]=> string(11) "font-weight" } array(2) { ["0"]=> string(7) "#CF1020" ["1"]=> string(4) "bold" } Następnie iteruję po elementach $properties i przypisuję do nich wartość z $values:
W wyniku tego dostaję: Cytat Notice: Undefined index: 0 in ... Notice: Undefined index: 1 in ... O co chodzi? :| Sprawdzałem w pętlach typy indeksów tablic - zawsze są to stringi. Próbowałem jawnie zrzutować $key na string ((string)$key) i też kupa. Proszę o pomoc, rady, wskazówki, pion PS: Po drodze w pętli foreach daję sobie testowy warunek:
co oczywiście pokazuje: Cytat 0 nie istnieje w Array ( [0] => #CF1020 [1] => bold ) string(1) "0" i analogicznie dla indeksu 1. PS2: Dałem na razie jawne "przepisanie" tablicy i działa: Co nie zmienia faktu, że chciałbym dojść do tego dlaczego pierwotne rozwiązanie nie działa. Ten post edytował phpion 5.10.2009, 08:34:36 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Odpaliłem na php 5.3 coś takiego
i wszystko ok. Pokaż skąd masz te obiekty i jaka wersja php. -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
PHP 5.2.5 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Udało mi się wyczytać coś takiego
http://pl2.php.net/manual/en/language.type...s.array.casting Cytat If an object is converted to an array, the result is an array whose elements are the object's properties. The keys are the member variable names, with a few notable exceptions: integer properties are unaccessible; private variables have the class name prepended to the variable name; protected variables have a '*' prepended to the variable name. Pewnie dlatego, że nie możesz mieć zmiennej o nazwie $0 dlatego tak dziwnie konwertuje. Spójrz na to
Wynik: Kod Array ( [0] => value [1] => test [0] => valuet [1] => testt ) Dlatego jak wyczytałem, przy takich obiektach (w których wlasciwosci sa nazwami numerycznymi) należy przekonwertować obiekt za pomocą tej funkcji
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Dzięki za informacje. Nie zmienia to jednak faktu, że isset() w tym przypadku działa dość dziwnie... niby nie ma, a jednak jest...
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Tak ale skoro nie mozna dostać się do wartości to po co isset miałby ci mówić, że wartość jest? I tak się do niej nie dostaniesz. Więc według mnie jest to prawidlowe
![]() -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 00:44 |