Firma X zaslala předžalobní výzvu vývojáři projektu Nitter (Wikipedia), open-source alternativního frontendu k sociální síti X (ex-Twitter), a provozovatelům instancí jako XCancel, které umožňovaly číst příspěvky bez přihlášení, reklam a javascriptu. Údajně se dopouštějí „sběru dat“. Zdrojový kód Nitteru vývojář archivoval. Vývoj již dříve přerušil v roce 2024 po tehdejším omezení API X. X je dceřiná společnost SpaceXAI Elona Muska, provozující mj. kontroverzního chatbota Grok.
Bylo vydáno Ubuntu 26.04.1 LTS, tj. první opravné vydání Ubuntu 26.04 LTS s kódovým názvem Resolute Raccoon. Přehled novinek a oprav na Discourse.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal Zprávu o stavu kybernetické bezpečnosti ČR za rok 2025 (pdf). Incidentů ubylo, sofistikovanost útočníků roste.
Open source softwarový stack AMD ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán v nové major verzi 10.0. S ROCm.AI. Přehled novinek v aktualizované dokumentaci.
Finanční skupina Partners se stala minulou neděli obětí kybernetického útoku, při kterém se útočníci dostali k některým osobním údajům klientů. Společnost o tom informovala ve čtvrtek. Ujišťuje, že peníze klientů nejsou v ohrožení. „Kybernetický útok zasáhl část IT infrastruktury naší společnosti. Ihned po zjištění útoku jsme s pomocí externích bezpečnostních odborníků začali intenzivně pracovat na minimalizaci škod. Útočníci se
… více »Americká technologická společnost Meta Platforms se dohodla, že zaplatí až zhruba 18 miliard dolarů (asi 373 miliard Kč) za mimosoudní urovnání sporu o závislosti dětí na sociálních sítích a provede významné změny pro jejich používání mladistvými. Téměř tři desítky států USA firmu v roce 2023 obvinily z toho, že sítě Facebook a Instagram vědomě navrhla tak, aby u dětí vyvolávaly závislost, a zatajovala tyto dopady před veřejností. Firma se
… více »Byl publikován aktuální přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Blíží se vydání podporující čipy M3. Vývojáře lze podpořit na GitHub Sponsors a Open Collective.
Kancelářský balík LibreOffice byl vydán ve verzi 26.8. Mimo jiné vylepšuje typografii a kompatibilitu s formáty MS Office, více v poznámkách k vydání.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 26.8. Přehled novinek v poznámkách k vydání.
Byla vydána nová verze 23.1.0, tj. první stabilní verze z nové řady 23.1.x, překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, LLD, Extra Clang Tools, Libc++, Polly a Flang.
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:
Díky
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: