Probíhá Meta Connect 2023. Společnost Meta představuje své novinky v oblasti AI a virtuální, smíšené a rozšířené reality. Představeny byly nové chytré brýle Ray-Ban | Meta a headset Meta Quest 3.
Eben Upton oficiálně představil (YouTube) nové Raspberry Pi 5 (YouTube). Je více než 2x výkonnější než jeho předchůdce, model 4B.
Byl vydán (YouTube) Counter-Strike 2. Nativně také pro Linux. Jedná se o největší technologický skok v historii této populární herní série.
Richard Stallman vystoupí v Praze s přednáškou Free Software And Your Freedom. V sobotu 30. září ve 14:30 na Pedagogické fakultě UK a v neděli 1. října v 18:00 hodin v rámci konference Hackers Congress Paralelní Polis.
Byla vydána verze 6 s kódovým název Faye linuxové distribuce LMDE (Linux Mint Debian Edition). Podrobnosti v poznámkách k vydání. Linux Mint vychází z Ubuntu. LMDE je postaveno na Debianu.
Byly publikovány informace o novém bezpečnostním problému pojmenovaném GPU.zip (paper, GitHub). S vlastním logem. Jedná se o možný útok postranním kanálem na grafickou kartu (GPU). Proces může "krást pixely" jinému procesu.
Projekt GNU dnes slaví 40. výročí. Přesně před čtyřiceti lety, 27. září 1983, Richard Stallman oznámil, že se chystá napsat s Unixem kompatibilní operační systém GNU (Gnu's Not Unix). Hlavní oslava a setkání hackerů probíhá ve Švýcarsku ve městě Biel/Bienne. Na programu je také přednáška Richarda Stallmana.
Byl vydán Mozilla Firefox 118.0. Přehled novinek v poznámkách k vydání, poznámkách k vydání pro firmy a na stránce věnované vývojářům. Vypíchnout je nutno automatický lokální strojový překlad webových stránek. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 118 je již k dispozici také na Flathubu a Snapcraftu.
Byla vydána nová major verze 15.0.0 softwaru OCRmyPDF pro přidávání textové vrstvy k naskenovaným PDF dokumentům (PDF/A). Přehled novinek v poznámkách k vydání. OCRmyPDF využívá pro optické rozpoznávání znaků (OCR) engine Tesseract.
Karel Matějka zveřejnil druhé demo své chystané hry Bzzzt. Kromě verze pro Windows a macOS je dostupná i verze pro Linux. Plná verze hry má vyjít zanedlouho.
class Parser{ function __construct($obj){ $this->$obj = $obj; } function __get(){ # Nevím jak tady zavolat ten objekt $obj. Zkoušel jsem toto $this->obj->metoda; # ale nefunguje to } }
Řešení dotazu:
$this->$obj = $obj;
má být $this->obj = $obj;
. $this->$obj
totiž pro jméno proměnné použije výsledek volání $obj->__toString()
$this->obj->metoda()
public $obj = NULL;
(nebo bez inicializace).
public
- to mi ujelo.
<?php class Parser { private $obj = array(); function __set($key, $value) { $this->obj[$key] = $value; } function __get($key) { return $this->obj[$key]; } } $registr = new Parser(); $registr->smysl = 42; $registr->kopa = 60; echo "Kopa je $registr->kopa kusů, smyslem života je $registr->smysl";Jenže pokud potřebuješ něco takhle primitivního, vystačíš si i se standardní třídou
stdClass
, která to už umí.
__get()
a __set()
v PHP jsem nikdy nepochopil. Přijde mi, že gettery a settery jako takové, mají dvě výhody.
public function getFoo() { ... }
public function setFoo($foo) { ... }
$obj->getFoo()
nemůžeš použít ve stringu (šabloně), ale $obj->foo
tam použít můžeš - normálně se expanduje. Ládovat všechno do pomocných proměnných před šablonou je poněkud nepraktické.
Jak jsem psal, ten mnou popsaný způsob pouze popisuje volání - jako v manuálu. V této podobě to už nepoužívám. Nepoužívám gettery/settery a nepoužívám ani public proměnné.
Stačí použít vhodný switchUrčitě souhlas, ale asi by se mi to moc nelíbilo.
Metodu $obj->getFoo() nemůžeš použít ve stringu (šabloně)Díky, tohle mě nenapadlo. Já většinou používám Laravel a tam by s tím problém nebyl.
Tiskni
Sdílej: