Autor Zpráva
karlos1
Profil *
Ahoj,

potřeboval bych poradit s PHP, ve kterém jsem spíše začátečník a nevím si moc rady.

Mám následujícího kočkopsa (objekt v poli,nevím, jestli to je standardní, nepřijde mi). Vypisuji výpis funkce print_r:

Array (
    [0] => xy Object
        (
            [_product:commerce:private] => produkt
            [_product_id:commerce:private] => 73
            [_sku:commerce:private] => 123
            ...
        )    
    [1] => xy Object
        (
            [_product:commerce:private] => produkt 2
            [_product_id:commerce:private] => 75
            [_sku:commerce:private] => 234
            ...
        )  
)

Nyní bych do tohoto pole/objektu potřeboval přidat ručně další položku, a to ideálně v úplně jiném místě, než kde se vkládají normálně produkty.

U polí by to bylo jednoduché, tak bych si položku "dolepil", v jakémkoliv souboru, nehledě na původní lokaci, pomocí zápisu:
$array[2] = array(
    'product' => 'xy',
    'product_id' => 1,
    'sku'=> 987
)

Jak můžu podobným způsobem vložit něco do toho objektu? Snad bude podobně jednoduché řešení existovat.

Důvod tohoto lepení? Nejsem programátor a potřebuji narychlo a krátkodobě (po dobu cca 3 týdnů, než bude nový e-shop). Reakce typu "takto ne, dělá se to jinak a hezčeji" prosím nyní vynechte.
Děkuji.
Tori
Profil
karlos1:
Možná něco takového?? (tipuju)
$obj = new NejakyNazev();
$obj->setProduct('xy');
$obj->setProductId(1);
$obj->setSku(987);
$array[] = $obj;
Nevím jak vypadá ta třída commerce, jestli se jí hodnoty předávají přes konstruktor nebo pomocí metod (jako v příkladu). Kdyžtak můžete poslat její definici, abychom mohli poradit.
karlos1
Profil *
Tori:
zkusím se podívat, snad to najdu v té spoustě souborů :-)

Ještě se zeptám, vždy jsem viděl něco jako Std Object nebo tak nějak, tady mi to ale v dumpu vrací nějaké jméno, uvedl jsem to jako "xy" Object - nesouvisí s produktem xy. Trochu mě to mate. Ne trochu, dost, nevím, co s tím.

Jinak to "private" se tam dodá, soudě dle tvého kódu, samo? Zkusím a pohledám i to, cos chtěl, tu definici. Nechám to na zítra, dnes byl dlouhý den.
Tori
Profil
karlos1:
"xy" je název té třídy, jejíž instance (= objekty) jsou v poli. Proměnné _product aj. pocházejí z nějaké jiné třídy s názvem commerce, od které je třída "xy" zdědila. Zkuste najít soubory s definicemi tříd - jeden obsahuje řetězec class commerce a druhý class xy. "private" znamená, že se ta vlastnost (= proměnná uvnitř objektu) nedá měnit přímo, ale musí se k ní zvenčí přistupovat pomocí nějaké metody (= funkce).
Co je to vlastně za aplikaci? Jestli jde o nějaký běžně používaný e-shop typu osCommerce apod., tak s tím někdo tady určitě bude mít zkušenosti.
karlos1
Profil *
Tori:
Jsi výborný, tvůj kód úplně výborně funguje. Děkuji i za vysvětlení těch pojmů.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: