Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.
Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.
Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.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 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.
Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.
GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.
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: