Ubuntu pro testování nových verzí vydává měsíční snapshoty. Dnes vyšel 1. snapshot Ubuntu 26.04 LTS (Resolute Raccoon).
Zástupci členských států EU se včera shodli na návrhu, který má bojovat proti šíření materiálů na internetu zobrazujících sexuální zneužívání dětí. Nařízení známé pod zkratkou CSAM a přezdívané chat control mělo množství kritiků a dlouho nebyla pro jeho schválení dostatečná podpora. Pro schválení byla potřeba kvalifikovaná většina a dánské předsednictví v Radě EU se snažilo dosáhnout kompromisu. Návrh nakonec po dlouhých týdnech
… více »Britské herní studio Facepunch stojící za počítačovými hrami Garry's Mod a Rust uvolnilo svůj herní engine s&box (Wikipedie) jako open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT. Herní engine s&box je postavený nad proprietárním herním enginem Source 2 od společnosti Valve.
Vývoj programovacího jazyka Zig byl přesunut z GitHubu na Codeberg. Sponzoring na Every.
Stejně jako GNOME i KDE Plasma končí s X11. KDE Plasma 6.8 poběží už pouze nad Waylandem. Aplikace pro X11 budou využívat XWayland.
Poslanci Evropského parlamentu dnes vyzvali k výraznému zvýšení ochrany nezletilých na internetu, včetně zákazu vstupu na sociální sítě pro osoby mladší 16 let. Legislativně nezávazná zpráva, kterou dnes odsouhlasil Evropský parlament poměrem 493 hlasů pro ku 92 proti, kromě zavedení věkové hranice 16 let pro využívání sociálních sítí, platforem pro sdílení videí či společníků s umělou inteligencí (AI) vyzývá také k zákazu … více »
Doom v KiCadu nebo na osciloskopu? Žádný problém: KiDoom: Running DOOM on PCB Traces a ScopeDoom: DOOM on an Oscilloscope via Sound Card.
Po AlmaLinuxu byl v nové stabilní verzi 10.1 vydán také Rocky Linux. Přehled novinek v poznámkách k vydání.
Open source reimplementace počítačových her Tomb Raider I a Tomb Raider II spolu s dalšími vylepšeními a opravami chyb TRX byla vydána ve verzi 1.0. Jedná se o sloučení projektů / enginů TR1X a TR2X do jednoho TRX. Videoukázka na YouTube.
Společnost Seznam.cz spouští konverzační nástroj založený na umělé inteligenci Seznam Asistent. Asistent využívá vlastní jazykový model SeLLMa a dočasně i komerční modely od OpenAI provozované v evropských datacentrech prostřednictvím Microsoft Azure. Dlouhodobým cílem Seznamu je provozovat Asistenta výhradně na interních jazykových modelech a ve vlastních datových centrech.
$obj = Ovoce();a z té třídy volám jiné třídy které potřebují instanci třídy 'Ovoce', existuje řešení jak to udělat? Děkuji
$this.
$obj = Ovoce();v class Ovoce zavolám jinou class Zelenina
$obj2 = Zelenina();a v class Zelenina potřebuji zavolat metodu v class Ovoce. je to lépe k pochopení? Děkuji
<?php
class Ovoce {
private $atribut;
private $obj2;
function __construct($atribut){
$this->atribut = $atribut;
$this->obj2 = new Zelenina($this);
}
function getAtribut(){
return $this->atribut;
}
function __toString() {
return "Ovoce a $this->obj2";
}
}
class Zelenina {
private $ovoce;
function __construct(Ovoce $ovoce){
$this->ovoce = $ovoce;
}
function __toString() {
return "zeleniny mám: " . $this->ovoce->getAtribut() . " kusů";
}
}
$obj = new Ovoce(42);
echo $obj;
Výsledek:
Ovoce a zeleniny mám: 42 kusů
Musím si to pořádně rozebrat.. Děkuji
ještě tady mám úplně obyčejnou class, ze které opět nedostanu nic jiného než nadafinované proměnné na false. V každé metodě se uloží string který se ještě vypíše pokud tam vložím echo, ale v poslední metodě "show" už jsou zase všechny proměnné false, kde se to ztrácí? Děkuji
class Test{
private $item1 = false;
private $item2 = false;
private $item3 = false;
public $show = false;
public function __construct(){
$this->item1();
$this->item2();
$this->item3();
}
public function item1(){
$this->item1 .= 'Text item1';
}
public function item2(){
$this->item2 .= 'Text item2';
}
public function item3(){
$this->item3 .= 'Text item3';
}
public function show(){
$this->show .= $this->item1;
$this->show .= $this->item2;
$this->show .= $this->item3;
}
}
$test = new Test();
var_dump($test->show); // bool(false)
Kde voláš tu metodu show()? Podle mne nikde. Atributu $show zůstane původní hodnota.Já jsem fakt pako
Kdo ti poradil, abys dělal atributy "public"? Mají být "private".Narážiš na tento zápis ?
public $show = false;Pokud ano, jak bych tu proměnnou pak vypsal?
A kdo ti poradil řetězit booleovskou hodnotu s řetězcem? Sice to tak nějak funguje, ale je to nesmysl.tak jak to má být? Měl jsem za to, že když se jedná o inicializace proměnné je to fuk..
public $show = ''; nebo public $show = ""; nebo úplně jinakDíky
<?php
class Test {
private $item1 = 'Text item1';
private $item2 = 'Text item2';
private $item3 = 'Text item3';
public function __toString() {
return $this->item1 . $this->item2 . $this->item1;
}
}
$test = new Test();
echo $test;
Všechno ostatní je tam jaksi "navíc" a není příliš patrné, proč to tam máš.
Vyhýbej se operátorům ".=" - nejsou moc efektivní a většinou ani nejsou potřebné.
Všechno ostatní je tam jaksi "navíc" a není příliš patrné, proč to tam máš.Byl to jen příklad, metody jsem tady nechtěl z důvodu přehlednosti rozvádět... Když si vezmu cenné ponaučení a vycházím z původního příkladu, tak ted je to OK ? Děkuji
class Test{
private $item1;
private $item2;
private $item3;
public function __construct(){
$this->item1();
$this->item2();
$this->item3();
}
public function item1(){
$this->item1 = 'Text item1';
}
public function item2(){
$this->item2 = 'Text item2';
}
public function item3(){
$this->item3 = 'Text item3';
}
public function show(){
$this->show = $this->item1.$this->item2.$this->item1;
}
public function __toString(){
return show();
}
}
$test = new Test();
echo($test->show());
public function __toString(){
return $this->item1.$this->item2.$this->item1;
}
tak vůbec nebudeš potřebovat volat metodu show()
$test = new Test(); echo($test);Uvnitř objektu si udržuj atributy v atomickém stavu, ale vně objektu je prezentuj jako komplexní hotovou informaci, kterou k něčemu potřebuješ. Nesnaž se z vnějšku manipulovat s jednotlivými atributy, to je úkolem metod uvnitř objektu.
Metodu __toString() tam máš navíc, protože jsi ji nepoužil.jak to že jsem ji nepoužil? ta metoda se zpracuje přece vždy?
U metody show() ti chybí return.Ano to je pravda, to co jsem napsal je nesmysl, čili se dvěma metodama asi takto (doufám)
public function show(){
return $this->item1.$this->item2.$this->item1;
}
public function __toString(){
return show();
}
Uvnitř objektu si udržuj atributy v atomickém stavu, ale vně objektu je prezentuj jako komplexní hotovou informaci, kterou k něčemu potřebuješ.Vůbec netuším co je to atomický stav, musím pohledat a nastudovat...
Nesnaž se z vnějšku manipulovat s jednotlivými atributy, to je úkolem metod uvnitř objektu.No a tohle jde úplně mimo mne. Absolutně nerozumím co se mi snažíš poradit...
Tiskni
Sdílej: