VASA-1, výzkumný projekt Microsoftu. Na vstupu stačí jediná fotka a zvukový záznam. Na výstupu je dokonalá mluvící nebo zpívající hlava. Prý si technologii nechá jenom pro sebe. Žádné demo, API nebo placená služba. Zatím.
Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 140 (pdf) a HackSpace 77 (pdf).
ESPHome, tj. open source systém umožňující nastavovat zařízení s čipy ESP (i dalšími) pomocí konfiguračních souborů a připojit je do domácí automatizace, například do Home Assistantu, byl vydán ve verzi 2024.4.0.
LF AI & Data Foundation patřící pod Linux Foundation spustila Open Platform for Enterprise AI (OPEA).
Neziskové průmyslové konsorcium Khronos Group vydalo verzi 1.1 specifikace OpenXR (Wikipedie), tj. standardu specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro AR (rozšířenou realitu) a VR (virtuální realitu). Do základu se z rozšíření dostalo XR_EXT_local_floor. Společnost Collabora implementuje novou verzi specifikace do platformy Monado, tj. open source implementace OpenXR.
Byla vydána nová verze 0.38.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 4.4 nebo novější a také libplacebo 6.338.2 nebo novější.
ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzích 1.3.1, 1.2.3 a 1.0.6. Ve verzi 1.3.1 je mimo jiné řešena bezpečnostní chyba CVE-2024-20380.
Digitální a informační agentura (DIA) oznámila (PDF, X a Facebook), že mobilní aplikace Portál občana je ode dneška oficiálně venku.
#HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.
Společnost Volla Systeme stojící za telefony Volla spustila na Kickstarteru kampaň na podporu tabletu Volla Tablet s Volla OS nebo Ubuntu Touch.
class Kontrola { public function __construct($array) { return 'foo'; } public function TestOne($a, $b, $c) //Potřebné 3 parametry { return 'foo'; } public function TestTwo() //Bez parametru { return 'foo'; } public function TestTre($a) //Potřebný 1 parametr { } } $array=array('TestOne'=>'0','0','0', 'TestOne'=>'0','2','0', 'TestTre'=>'2', 'TestTwo', 'TestOne'=>'2','3','10', ); $Kontrola = New Kontrola($array); echo $Kontrola;Jak mám tedy v konstruktoru volat jednotlivé metody s příslušnými parametry, když každá metoda má jiný počet parametrů. Poradí prosím někdo? Děkuji
Řešení dotazu:
jako vy chcete neco takoveho?
$array=array('TestOne'=>array('0','0','0'), 'TestOne'=>array('0','2','0'), 'TestTre'=>array('2'), 'TestTwo'=>array(), 'TestOne'=>array('2','3','10'), );
public function __construct($array) { foreach($array as $key=>$params){ var_dump(call_user_func_array('parent::'.$key,$params)); } }
array($this, 'parent::'.$key)
'Class::method'
je pro metody třídy (a funguje v poměrně novém PHP); varianta array($object, 'method')
je pro normální metody objektu. Tazatel spíš bude chtít to druhé, ale těžko říci...
tak tady mate jeden nazev funkce, dva pravdepodobne funkcni kody, pro jistotu pridam i odkaz do dokumentace - http://php.net/manual/en/function.call-user-func-array.php
vite urcite, co chcete?
<?php class Kontrola { public function __construct($array) { foreach($array as $key => $value){ call_user_func_array(array(&$this, $key) , $value ); } } public function TestOne($a, $b, $c) //Potřebné 3 parametry { echo "TestOne 1: $a 2: $b 3: $c\n"; return 'foo'; } public function TestTwo() //Bez parametru { echo "TestTwo\n"; return 'foo'; } public function TestTre($a) //Potřebný 1 parametr { echo "TestTre 1: $a\n"; return 'bar'; } } $array=array('TestOne'=>array('0','0','0'), 'TestOne'=>array('0','2','0'), 'TestTre'=>array('2'), 'TestTwo'=>array(), 'TestOne'=>array('2','3','10') ); $Kontrola = New Kontrola($array);
no tak treba takhle... zaklady php :)
class Kontrola { public function __construct($array) { foreach($array as $map){ call_user_func_array(array(&$this, $map[0]) , $map[1] ); } } public function TestOne($a, $b, $c) //Potřebné 3 parametry { echo "TestOne 1: $a 2: $b 3: $c\n"; return 'foo'; } public function TestTwo() //Bez parametru { echo "TestTwo\n"; return 'foo'; } public function TestTre($a) //Potřebný 1 parametr { echo "TestTre 1: $a\n"; return 'bar'; } } $array=array(array('TestOne',array('0','0','0')), array('TestOne',array('0','2','0')), array('TestTre',array('2')), array('TestTwo',array()), array('TestOne',array('2','3','10')) ); $Kontrola = New Kontrola($array);
$array=array('TestOne'=>array('0','0','0'), 'TestOne'=>array('0','2','0'), 'TestTre'=>array('2'), 'TestTwo'=>array(), 'TestOne'=>array('2','3','10')sa napr. použije
$array=array(('TestOne', '0','0','0'), ('TestOne', '0','2','0'), ('TestTre', '2'), ('TestTwo'), ('TestOne', '2','3','10')(a náležite sa upraví ten kód)
<?php class Kontrola { public function __construct($array) { foreach($array as $rec){ call_user_func_array(array(&$this, $rec[0]) , $rec[1] ); } } public function TestOne($a, $b, $c) //Potřebné 3 parametry { echo "TestOne 1: $a 2: $b 3: $c\n"; return 'foo'; } public function TestTwo() //Bez parametru { echo "TestTwo\n"; return 'foo'; } public function TestTre($a) //Potřebný 1 parametr { echo "TestTre 1: $a\n"; return 'bar'; } } $array=array(array('TestOne',array('0','0','0')), array('TestOne',array('0','2','0')), array('TestTre',array('2')), array('TestTwo',array()), array('TestOne',array('2','3','10')) ); $Kontrola = New Kontrola($array);
TestOne 0 0 0 TestTre 2 TestTwo TestOne 2 3 10který se načte a ověří, že zavolání metod vyprodukuje očekávané výsledky. Na unit test je vhodný nějaký framework, ale coby zadávání test cases pro jednoduché funkce to není tak špatné řešení -- lepší než pro ně patlat kód. Prasečina je totiž representovat data kódem...
taky to muze pouzit na nejake dynamicke nacitani modulu a extra funkce nejake podstranky... treba na urcitem miste na strance bude priznak s nazvem tridy a metody a tim to pak zavolat
bezpecnost samozrejme neresim :)
class Kontrola { public function __construct($array) { foreach($array as $test) { $reflectionMethod = new ReflectionMethod($this, $test[0]); echo $reflectionMethod->invokeArgs($this, $test[1]); } } public function TestOne($a, $b, $c) //Potřebné 3 parametry { return 'one'; } public function TestTwo() //Bez parametru { return 'two'; } public function TestTre($a) //Potřebný 1 parametr { return "three"; } } $array = [ ['TestOne', ['0','0','0']], ['TestOne', ['0','2','0']], ['TestTre', ['2']], ['TestTwo', []], ['TestOne', ['2','3','10']] ]; new Kontrola($array);
Tiskni Sdílej: