abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
3.12. 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 4
3.12. 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 22
2.12. 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 8
2.12. 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 3
2.12. 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
2.12. 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 1
2.12. 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
1.12. 21:00 | Nová verze

Byla vydána beta verze Linux Mintu 18.1 s kódovým jménem Serena. Na blogu Linux Mintu jsou hned dvě oznámení. První o vydání Linux Mintu s prostředím MATE a druhé o vydání Linux Mintu s prostředím Cinnamon. Stejným způsobem jsou rozděleny také poznámky k vydání (MATE, Cinnamon) a přehled novinek s náhledy (MATE, Cinnamon). Linux Mint 18.1 bude podporován až do roku 2021.

Ladislav Hagara | Komentářů: 0
1.12. 16:42 | Nová verze

Byl vydán Devuan Jessie 1.0 Beta 2. Jedná se o druhou beta verzi forku Debianu bez systemd představeného v listopadu 2014 (zprávička). První beta verze byla vydána v dubnu letošního roku (zprávička). Jedna z posledních přednášek věnovaných Devuanu proběhla v listopadu na konferenci FSCONS 2016 (YouTube, pdf).

Ladislav Hagara | Komentářů: 2
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 771 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: PHP oprava kódu

3.10.2013 12:22 Marek
PHP oprava kódu
Přečteno: 352×
Ahoj, mam takový kód
$array = array(11 => 'ahoj', 12 => 'pa', 15 => 'nazdar');

function retNum($n, $array)
{
  return $array[$n];
}

echo retNum(11, $array);
ale potřeboval bych poradit, jak opravit kód abych nemusel použít pole $array u volané funkce retNum(), abych volal funkci jen třeba echo retNum(11). poradí někdo? Díky

Řešení dotazu:


Odpovědi

Josef Kufner avatar 3.10.2013 12:27 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: PHP oprava kódu
class Num {
  private $array = array(
    11 => 'ahoj', 12 => 'pa', 15 => 'nazdar'
  );
  public function ret($n) {
    return static::$array[$n];
  }
}

// někde na začátku programu
$num = new Num;

// a potom
echo $num->ret(11);
Hello world ! Segmentation fault (core dumped)
Josef Kufner avatar 3.10.2013 12:29 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: PHP oprava kódu
Ehm,... to je tak když člověk kus odmázne a zapomene, že to je dvakrát. Definice třídy má vypadat takto:
class Num {
  private $array = array(
    11 => 'ahoj', 12 => 'pa', 15 => 'nazdar'
  );
  public function ret($n) {
    return $this->array[$n];
  }
}
Druhá možnost je použít static v definici pole, aby bylo v paměti jen jednou (pokud je velké a neměnné) a pak ta původní verze je správně.
Hello world ! Segmentation fault (core dumped)
3.10.2013 12:34 Marek
Rozbalit Rozbalit vše Re: PHP oprava kódu
Ahoj, díky moc, ale potřeboval bych to jen procedurálně... :-(
David Watzke avatar 3.10.2013 12:37 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: PHP oprava kódu
Tak v tom případě deklaruj pole $array jako globální a používej ho tak.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
Josef Kufner avatar 3.10.2013 12:39 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: PHP oprava kódu
To je přesně to, co jsem mu nechtěl říct, i když je to to nejjednodušší, co nyní může udělat.
Hello world ! Segmentation fault (core dumped)
David Watzke avatar 3.10.2013 12:41 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: PHP oprava kódu
Já jsem pochopil, proč jsi odpověděl jak jsi odpověděl. To tvoje je lepší řešení. Ale existují triviální použití, kdy to takto stačí.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
Josef Kufner avatar 3.10.2013 12:44 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: PHP oprava kódu
To jo. Otázkou však je, zda je tazatel na takové úrovni, aby poznal, kdy to už nestačí.
Hello world ! Segmentation fault (core dumped)
Josef Kufner avatar 3.10.2013 12:38 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: PHP oprava kódu
To je jen tvá iluze a pokud se jí nezbavíš, budeš později litovat.
Hello world ! Segmentation fault (core dumped)
3.10.2013 12:39 potato
Rozbalit Rozbalit vše Re: PHP oprava kódu
Dát definici pole do té funkce?

Použít ve funkci přímo tu globální proměnnou pole?

Použít function handling functions and vytvořit si funkci s jedním argumentem už fixním?

Jaký problém vlastně řešíš?
3.10.2013 14:36 Marek
Rozbalit Rozbalit vše Re: PHP oprava kódu
Použít function handling functions and vytvořit si funkci s jedním argumentem už fixním?
A nějaká ukázka pro pochopení? Díky
Josef Kufner avatar 3.10.2013 18:33 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: PHP oprava kódu
function retNum($n, $array)
{
  return $array[$n];
}

$retNum2 = function($n) {
  return retNum($n, array(11 => 'ahoj', 12 => 'pa', 15 => 'nazdar'));
};

echo $retNum2(11);
Hello world ! Segmentation fault (core dumped)
3.10.2013 22:42 Marek
Rozbalit Rozbalit vše Re: PHP oprava kódu
Asi se blbě vyjadřuji, nechci tahat pole $array po všech class, chci mít k tomu poli $array přístup odevšad bez vláčení ho pořád sebou jako pytel, nechci sebou tahat ani proměnnou ve které jsou nějaké instance $num ani $retNum2. Pořád jen všude samé sračky okolo OOP, programuj v OOP jinak nebudeš inOOP ale budeš k***t! a když chci mít z nějaké class přístup k deseti array(), tak musím mít 10 parametrů, tak že je zase musím tahat tak jako u funkcích tak k čemu to OOP sakra je. Tuny kódu navíc ve kterém se nevyzná za týden bez tuny popisků už ani prase natož autor... Long live include! :-;
3.10.2013 22:58 Kit
Rozbalit Rozbalit vše Re: PHP oprava kódu
Zatím jsi pořádně neuvedl, k čemu to vlastně potřebuješ. Působí to na mne stejnou logikou, jako kdyby ses ptal, jak se vruty správně zatloukají pilkou. Proto dostáváš zdánlivě nelogické odpovědi. Už samotná otázka totiž moc logiky nemá.

Pokud chceš mít deset polí, klidně si je zavři do jedné statické třídy a budeš je mít dostupné odkudkoli. Sice tě za to nepochválíme, ale bude ti to fungovat dle tvých představ. A nebudeš muset nic předávat přes parametry.
Josef Kufner avatar 4.10.2013 00:27 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: PHP oprava kódu
Přesně k tomu objekty jsou. Tady máš ukázku jak dva parametry jsou schované před zbytkem světa:
class NejakaBlbost {
	private $pole1 = array(32, 71, 66, 50, 37);
	private $ble = 7;

	public function nejakaMetoda($n) {
		$a = 1 + $this->ble % 33;
		$this->ble *= $this->ble;
		return chr($this->pole1[$a >> $n] + $a);
	}
}

$x = new NejakaBlbost;
echo $x->nejakaMetoda(3);
echo $x->nejakaMetoda(3);
echo $x->nejakaMetoda(3);
echo $x->nejakaMetoda(3);
A hádej, co to vypíše. Nápověda: nebudou to čtyři stejná čísla.
Hello world ! Segmentation fault (core dumped)
3.10.2013 12:39 Kit
Rozbalit Rozbalit vše Re: PHP oprava kódu
Pokud to nechceš objektově (viz výše), můžeš použít tohle primitivní řešení:
<?php
function retNum($n) {
    static $array = array(11 => 'ahoj', 12 => 'pa', 15 => 'nazdar');
    return $array[$n];
}

echo retNum(11);

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.