Apple představil nový iPad mini, iMac s čipem M6, 14palcový MacBook Pro s čipem M6 a MacBook Pro s PROLED XDR displejem – první Mac s dotykovým ovládáním.
Nedávno představený projekt mapSTL.com řeší budoucnost. 𝕏: "Netušil jsem, kolik patentů na generování map existuje. Existují patenty na generování fantasy map 🫣. Cokoliv je na 3D tiskárnu a tvoří to produkt, bude to mít patenty. Tak bacha na to!" … více »
Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.4 (𝕏). Přehled novinek a vylepšení v poznámkách k vydání.
Byla objevena zranitelnost Tailworm v Tailscale a Headscale umožňující lokální eskalaci práv přihlášeného uživatele. Následně byla v Tailscale v opravené verzi 1.104.4+ změněna architektura aplikace. Viz příspěvek na blogu Tailscale.
Byl vydán Mozilla Firefox 159.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 159 bude brzy k dispozici také na Flathubu a Snapcraftu.
Nasazení softwaru, který nyní používá ve svých autech pro čínský trh, zvažuje automobilový koncern Volkswagen také v Evropě, kde by se mohl používat v budoucích vozech značek Volkswagen, Škoda a Cupra. Základem pro budoucí evropské modely by se mohla stát takzvaná China Electronic Architecture, elektronická architektura vyvinutá pro čínské modely ve spolupráci s tamní automobilkou Xpeng.
Vedoucím brněnské pobočky Red Hatu se stal Radek Vokál [LinkedIn].
Open source download manager Fatrat povstal z popela. Autor k dvacetiletému výročí projektu přidal do vínku podporu nejnovější knihovny libtorrent, rozhraní portoval na QT6, došlo k nahrazení podpory java rozšíření pythonem. Webové rozhraní bylo přepsáno s podporou mobilních zařízení. Aplikaci je taktéž možno zkompilovat bez podpory GUI. Více informací v releases.
Zranitelnost Broccoli2Shell (CVE-2026-111497) v kompresní knihovně Brotli se netýká pouze Node.js. Ohroženy jsou také aplikace využívající HTTP. Knihovnu používají webové prohlížeče, servery i řada dalších aplikací a technologií, například také Python nebo Bun. Identifikace všech zranitelných komponent může být obtížná, protože knihovna bývá součástí dalších softwarových balíčků nebo je přímo začleněna do spustitelných souborů aplikací.
Quad9, švýcarský celosvětově působící neziskový poskytovatel DNS, od 24. listopadu 2026 ukončí své služby ve Francii kvůli soudnímu sporu s katarskou televizní stanicí beIN. Ta požadovala blokování domén, které podle ní nelegálně zpřístupňují sportovní přenosy. Francouzský soud Katarům vyhověl a nařídil (🇫🇷, PDF) Quad9 blokaci zavést, pod hrozbou pokuty 1000 eur denně. Provozovatel příkaz odmítá s tím, že blokace
… více »class Aaa {
private $aaa;
public function __construct() {
$this->aaa = new Bbb();
}
function __toString() {
return $this->aaa;
}
}
Třída Bbb
class Bbb {
private $bbb;
public function __construct() {
$this->bbb = 'Výsledek';
}
function __toString() {
return $this->bbb;
}
}
Vytvořím instanci třídy Aaa ale dostanu chybu!
echo new Aaa(); // Method Aaa::__toString() must return a string valueZjistil jsem, že když ve tříde Aaa opravím řádek
$this->aaa = new Bbb();za
$this->aaa .= new Bbb();tak to funguje. Proč tomu tak je však nedokážu nějak pochopit, vždyť nic nespojuji, tak proč tečka? Poradí někdo? Děkuji
__toString() musi vracet string.
Takze v tride Aaa predelej metodu __toString() takto:
function __toString() {
return strval($this->aaa);
}
= a .=? Prvni je prirazeni, druhy je zkraceny zapis concatenace stringu.
$this->aaa .= new Bbb();by se tedy dalo zapsat take takto:
$this->aaa = $this->aaa . new Bbb();No a pri concatenaci dochazi k prevodu na string, takze se na instanci
new Bbb() zavola metoda __toString()
$this->aaa nemas zadny vysledek, mas tam instanci tridy Bbb. Metoda __toString() se vola jen v pripade, ze je potreba z te instance udelat string.
Musíš nějak vynutit konverzi na řetězec a pomocí .= jsi provedl $this->aaa = $this->aaa . new Bbb();.
Já mám otázku: »Co vás lidi, tedy fčul Tebe, prosím Tě vede k tomu to používat takto (používat __toString())?«
To se musí někde líhnout tyto nápady a musí to mít nějaký důvod :).
class Aaa {
private $aaa;
public function __construct() {
$this->aaa = false;
$this->aaa .= '<ul>';
$this->aaa .= '<li>aaa</li>';
$this->aaa .= '<li>bbb</li>';
$this->aaa .= '<li>ccc</li>';
$this->aaa .= '</ul>';
}
}
$aaa = new Aaa();
echo $aaa;
A k čemu je taková třída?
Dobře, bude to „výkonná“ třída:
<?php
class Aaa {
static public function getListStatic() {
$o = '
class Aaa
{
private $o;
public function __construct()
{
$this->o = '$o = new Aaa(); echo $o; # Výsledek aaa bbb ccc
Tiskni
Sdílej: