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í
×
    včera 19:00 | IT novinky

    Framework [ Next Gen ] Event 2026, dnes v 19:30 společnost Framework na YouTube něco představí.

    Ladislav Hagara | Komentářů: 0
    včera 18:22 | Nová verze

    Byl vydán Mozilla Firefox 150.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 150 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 17:22 | Zajímavý software

    Byl představen (reddit, 𝕏) webový prohlížeč Brave Origin. Jedná se webový prohlížeč Brave bez VPN, krypto peněženky a odměn, tj. bez funkcí, ze kterých je vývoj Brave financován. Stojí jednorázově 59,99 dolarů. Verze pro Linux je zdarma.

    Ladislav Hagara | Komentářů: 1
    včera 12:44 | IT novinky

    Tim Cook po 15 letech opustí post generálního ředitele americké technologické společnosti Apple. Od 1. září ho vystřídá John Ternus, který byl dosud odpovědný za hardware. Cook se stane předsedou představenstva. Cook vedl Apple od roku 2011, kdy funkci převzal od zesnulého spoluzakladatele společnosti Stevea Jobse.

    Ladislav Hagara | Komentářů: 1
    včera 12:33 | Humor

    Evropská aplikace na ověřování věku uživatelů lze hacknout během dvou minut, navzdory tvrzením předsedkyně Evropské komise Uršuly von der Leyenové, že je tato aplikace 'technicky připravená pro ostré nasazení' a 'splňuje nejvyšší standardy ochrany osobních údajů na světě'. Zdrojové kódy aplikace byly Bruselem zveřejněny v repozitářích na GitHubu.

    MakeIranBombedAgain❗ | Komentářů: 4
    20.4. 15:33 | IT novinky

    Po 26 letech od protiprávního policejního zásahu, který byl spuštěn na základě podnětu společnosti Microsoft, Obvodní soud pro Prahu 2 rozsudkem potvrdil, že Mironet prokázal významnou část svého nároku na náhradu škody vůči Ministerstvu spravedlnosti ČR. Soudem nyní přiznaná část nároku znamená rekordní odškodné, jaké kdy české soudy přiznaly za nesprávný postup státu. Spor byl rozdělen na několik škod, u pravomocně uzavřených částí

    … více »
    Ladislav Hagara | Komentářů: 28
    20.4. 15:22 | Nová verze

    Lehké desktopové prostředí LXQt bylo vydáno ve verzi 2.4.0. Jde o převážně opravné vydání s drobnými vylepšeními podpory Waylandu.

    |🇵🇸 | Komentářů: 0
    20.4. 12:44 | IT novinky

    Počítačová hra Kingdom Come: Deliverance 2 českého studia Warhorse získala cenu BAFTA v kategorii nejlepší příběh. V konkurenci pěti dalších nominovaných děl porazila i úspěšnou francouzskou hru Clair Obscur: Expedition 33, která v letošním ročníku získala cenu za nejlepší hru roku.

    Ladislav Hagara | Komentářů: 1
    20.4. 12:22 | Komunita

    Projekt KDE oslaví v říjnu 30 let. Matthias Ettrich poslal 14. října 1996 do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu. Důležité milníky jsou zobrazeny na časové ose KDE.

    Ladislav Hagara | Komentářů: 3
    20.4. 02:55 | Komunita

    Byly vyhlášeny výsledky letošní volby vedoucí/ho projektu Debian (DPL, Wikipedie). Poprvé povede Debian žena. Novou vedoucí je Sruthi Chandran. Letos byla jedinou kandidátkou. Kandidovala již v letech 2020, 2021, 2024 a 2025. Na konferenci DebConf19 měla přednášku Is Debian (and Free Software) gender diverse enough?

    Ladislav Hagara | Komentářů: 16
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (1%)
     (12%)
     (30%)
     (3%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 1373 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    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: 444×

    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.