[php] Przekazanie danych do zmiennej?, Na jakiej zasadzie działą ten kod? |
[php] Przekazanie danych do zmiennej?, Na jakiej zasadzie działą ten kod? |
24.09.2021, 13:31:32
Post
#1
|
|
Grupa: Zarejestrowani Postów: 190 Pomógł: 0 Dołączył: 25.11.2015 Ostrzeżenie: (0%) |
Witam.
Analizuje przykład z pewnej dokumentacji API. I widzę dziwny kod: Przypisanie zmiennej albo raczej obiektu: $customerFields = $blankXml->customer->children(); a później zmienna $customerFields nie jest nigdzie przekazywana tylko $blankXml zmienia swoja wartość. Dlaczego pod koniec kodu używa się 'postXml' => $blankXml->asXML() zamiast np 'postXml' => $customerFields->asXML()? Jak to możliwe, że zmiany w $customerFields zachodzą w tablicy $blankXml ?
Jest to kod z dokumentacji prestaShop, dodawanie pozycji przez API: https://devdocs.prestashop.com/1.7/webservi...reate-resource/ Potrzebuje dodać kilka pozycji naraz i zastanawiam się jak zbudować tą pętle. Przy każdym wywołaniu pętli muszę pobierać pusty szkielet xml? Wolałbym tego uniknąć. Ten post edytował luis2luis 24.09.2021, 13:33:44 |
|
|
24.09.2021, 19:23:33
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Dlatego:
https://www.php.net/manual/en/language.oop5.references.php W skrócie Obiekty w PHP są przekazywane przez referencję czyli mając obiekt i przypisując go do zmiennej to edyckja zmiennej edytuje obiekt. Aby mieć kopię obiektu trzeba użyć clone |
|
|
27.09.2021, 10:03:44
Post
#3
|
|
Grupa: Zarejestrowani Postów: 190 Pomógł: 0 Dołączył: 25.11.2015 Ostrzeżenie: (0%) |
W skrócie Obiekty w PHP są przekazywane przez referencję czyli mając obiekt i przypisując go do zmiennej to edyckja zmiennej edytuje obiekt. Aby mieć kopię obiektu trzeba użyć clone Dziękuje za odpowiedź. Widze, że jest jednak problem z klonowaniem obiektu Simple XML :/ samo clone nie daje efektu. |
|
|
28.09.2021, 10:29:42
Post
#4
|
|
Grupa: Zarejestrowani Postów: 3 032 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
bo clone robi tylko płytka kopie, pytanie poco Ci kopia?
|
|
|
Wersja Lo-Fi | Aktualny czas: 29.03.2024 - 12:08 |