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í
×
    dnes 01:22 | Nová verze

    PyPy (Wikipedie), tj. implementace Pythonu v RPythonu, alternativa CPythonu v C, byla vydána v nové major verzi 8.0.0. Podporuje Python 2.7, 3.11 a 3.12.

    Ladislav Hagara | Komentářů: 0
    dnes 00:22 | Komunita
    V rakouském Štýrském Hradci probíhá konference vývojářů a uživatelů desktopového prostředí KDE Plasma Akademy 2026. O víkendu proběhly přednášky. Videozáznamy jsou k dispozici na YouTube.
    Ladislav Hagara | Komentářů: 1
    včera 23:55 | Bezpečnostní upozornění

    V jádře Linux byly nalezeny a v upstremu ve verzích 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.109, 6.18.50 a 7.2.4 již opraveny 4 kritické zranitelnosti umožňující eskalaci práv: DirtyAH6 (CVE-2026-80844), TUNderflow (CVE-2026-81000), PPPoEject (CVE-2026-68121) a DiagSpill (CVE-2026-74469).

    Ladislav Hagara | Komentářů: 0
    včera 23:11 | Zajímavý článek

    Německá policie a celníci zneužívají ke čtení zpráv komunikačních aplikacích WhatsApp, Signal, Telegram nebo Threema velice jednoduchý trik, který nevyžaduje prolomení šifrování, spear phishing, odposlech SMS či jinou technicky náročnou metodu. Příslušníkům státního aparátu pouze stačí získat krátký přístup k odemčenému telefonu a prostřednictvím QR kódu propojit účet s oficiální desktopovou nebo webovou aplikací v policejním

    … více »
    AfD 💙 | Komentářů: 0
    19.9. 02:11 | IT novinky Ladislav Hagara | Komentářů: 0
    18.9. 19:11 | Zajímavý projekt

    Fugleramme, v překladu 'ptačí rámeček', je open-source projekt postavený na Raspberry Pi, který pomocí lokální umělé inteligence BirdNET-Go rozpoznává ptačí druhy podle jejich zpěvu a na displeji následně zobrazuje koláž tvořenou odpovídajícími ilustracemi. Databáze obsahuje přes 800 ručně vybraných historických přírodovědných ilustrací více než 400 druhů ptáků.

    … více »
    AfD 💙 | Komentářů: 1
    18.9. 16:55 | Nová verze

    Unicode Consortium, nezisková organizace koordinující rozvoj standardu Unicode, oznámila vydání Unicode 18.0. Přidáno bylo 13 007 nových znaků. Celkově jich je 172 808. Přibylo 9 nových Emoji.

    Ladislav Hagara | Komentářů: 5
    18.9. 13:22 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 169 (pdf).

    Ladislav Hagara | Komentářů: 0
    18.9. 03:33 | Nová verze

    Byla vydána nová verze 6.4 programovacího jazyka Swift (Wikipedie). Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 0
    17.9. 23:11 | Komunita

    Německý kancléř Friedrich Merz (CDU) se během debaty s finalisty studentské vědecké soutěže Jugend forscht vyjádřil pro konec anonymity na internetu a vyslovil názor, že pro uživatele Internetu by měla platit podobná právní odpovědnost jako pro novináře tradičních médií. Na dotaz studenta, jak by se tedy povinnost uvádět pravé jméno slučovala s prací investigativních novinářů nebo ochranou jejich zdrojů, Merz neodpověděl, ve své

    … více »
    AfD 💙 | Komentářů: 53
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (21%)
    Celkem 2702 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: PHP: $this ve funkci pro nastavení nepovinného parametru

    29.5.2013 01:33 Pinon | skóre: 7
    PHP: $this ve funkci pro nastavení nepovinného parametru
    Přečteno: 696×

    Zdravím, mám následující problém. Vytvořil jsem si (a zde pro zjednodušení oškubal co to šlo) třídu, která bude logovat nějaký message do databáze, souboru atd. Vytvářil jsem si tuto třídu:

    class logging {
    	public $log_file;
    	public $save_in_db;
    	...
    
    	public function __construct($log_file)
    	{
    		$this->log_file = $log_file;
    		$this->save_in_db = true;	// Defaultně se zpráva bude ukládat do databáze
    		...
    	}
    	
    	public function write($message, $save_in_db = $this->save_in_db)
    	{
    		if($save_in_db){
    			// Uložit do DB
    		}
    	...
    
    Mám představu, že defaultně se zpráva bude ukládat do databáze. Když zavolám funkci write s jedním parametrem, $save_in_db se automaticky nastaví na true a zpráva se uloží. Když ale zavolám funkci s druhým parametrem, který bude false, tak se zpráva neuloží. Bohužel když do funkce dám $this->neco, tak mi php skončí s chybou; PHP Parse error: syntax error, unexpected T_VARIABLE in /var/www/html/scripts/class/logging.class.php on line 34 a já nevím proč, protože logicky by to mělo fungovat. Díky za rady..


    Řešení dotazu:


    Odpovědi

    Řešení 2× (blondak, DarkKnightCZ)
    29.5.2013 08:55 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: PHP: $this ve funkci pro nastavení nepovinného parametru
    Tam jedině konstantu, pokud to chceš takto, můžeš to upravit třeba v duchu:
      public function write($message, $save_in_db = NULL){
        if(is_null($save_in_db))
          $save_in_db = $this->save_in_db;
        if($save_in_db){
          echo 'save';
        }
      }
    
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    30.5.2013 20:43 Kozzi
    Rozbalit Rozbalit vše Re: PHP: $this ve funkci pro nastavení nepovinného parametru
    No podle me pokud se to ma defaultne ukladat, tak bych se zcela vykaslal na tu promenou $this->save_in_db a rovnou nastavil nepoviny parametr $save_in_db na true.

    Takze spravnejsi reseni je;
    class logging {
    	public $log_file;
    	...
    
    	public function __construct($log_file)
    	{
    		$this->log_file = $log_file;
    		...
    	}
    	
    	public function write($message, $save_in_db = true)
    	{
    		if($save_in_db){
    			// Uložit do DB
    		}
    	...
    
    30.5.2013 22:41 DarkKnightCZ | skóre: 12
    Rozbalit Rozbalit vše Re: PHP: $this ve funkci pro nastavení nepovinného parametru

    no asi by se to spravne melo ukladat do predvoleneho typu :) proc pak volat tu metodu pokazde s jednim parametrem navic?

    31.5.2013 08:03 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: PHP: $this ve funkci pro nastavení nepovinného parametru
    Za správnější řešení bych si troufl označit jen, řešení
    public function write($message);
    , následné:
    public function write($message, $save_in_db = true);
    bych tedy já označil za špatné - sorry (minimálně dělající něco jiného).
    Důvod je prostý,kód z dotazu řeší, přednastavenou hodnotu např. z konfigurace a ta může být on nebo off a k tomu nezávislé přepsání hodnoty, na jakoukoliv hodnotu (tedy argument funkce má být „three bool“).
    Takže pokud to není (v původním dotazu) z důvodů „závažnosti“ hlášení tedy klasické „severity“ přiřazené hlášení (algoritmicky nebo argumentem) a „log“ objekt má definovaný aktuální level, kterým se řídí, tak bych napsal dvě funkce, třeba:
    public function write($message){
    }
    public function writeForce($message,$save_in_db){
    }
    
    bez nepovinných parametrů a možná obě opřel privátní fce writeMsg(), writeMsgToDb() - ale to už jsme moc daleko…
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    31.5.2013 12:24 Kozzi
    Rozbalit Rozbalit vše Re: PHP: $this ve funkci pro nastavení nepovinného parametru
    Pravda ctu si tou ptazku jeste jednou, poprve jsem z toho pochopil ze chce jen defaultne ukladat do db a v pripade druheho parametru neukladat, az ted jsem si vsiml ze mu slo o to aby se mu nastavil stav, ktery to bude ridit.
    31.5.2013 12:44 Kit
    Rozbalit Rozbalit vše Re: PHP: $this ve funkci pro nastavení nepovinného parametru
    V tom případě by stačilo jen upravit konstruktor nebo přidat jeden setter.

    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.