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íží...
včera 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ářů: 0
včera 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ářů: 16
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ářů: 2
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ářů: 0
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ářů: 0
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 767 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Problém s class v php

1.10.2013 11:41 Jara
Problém s class v php
Přečteno: 236×
Ahoj, mám takovou slátaninu
class Foo { 
 public $aaa = false; 
 public $bbb = false; 
 function __constructor() { 
...
...
 } 
} 
$foo = new Foo;
echo $foo->aaa(); // ale false prostě nedostanu :-(
Neporadí někdo? Díky

Řešení dotazu:


Odpovědi

Josef Kufner avatar 1.10.2013 11:44 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Problém s class v php
Na posledním řádku voláš metodu, která není definována. Měl bys dostat nějaký pěkný error nebo aspoň warning. Pokud ne, zapni logování.

Poslední řádek má být: echo $foo->aaa;, ale uvidíš prd, neboť z false vyleze prázdný řetězec. Zkus var_export($foo->aaa);.
Hello world ! Segmentation fault (core dumped)
1.10.2013 12:02 Jara
Rozbalit Rozbalit vše Re: Problém s class v php
Jejda já jsem ale idiot, nn měl jsem to přes var_dump($foo->aaa()); ale blbě, volal jsem metodu, měl bych jít už vážně spát.. Když tady mám ochotného profíka co mi poradil, můžu poprosit o jedno řešení? Nevím jak mám v class vracet výsledek z jedné metody do různých proměnných. Dejme tomu, že z nějaké metody zavolám metodu foo() a její výsledek potřebuji uložit do proměnné $this->foo; Jenže potřebuji zase z jiné metody zavolat opět metodu foo() která již bude zpracovávat jiná data ale výsledek potřebuji uložit do proměnné $this->bar; Poradíte mi prosím? Díky
Tarmaq avatar 1.10.2013 12:19 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Problém s class v php
nevim moc o co se pokousis, kazdopadne jestli to chapu spravne, melo by to jit nejak takhle:
class Omg
{
  private $foo;
  private $bar;

  private function foo($omg)
  {
    if ($omg) {
      return 42;
    }
    return 23;
  }
  function method1()
  {
    $this->foo = $this->foo(true);
  }
  function method2()
  {
    $this->bar = $this->foo(false);
  }
}

$omg = new Omg;
$omg->method1();
$omg->method2();
Don't panic!
1.10.2013 12:32 Jara
Rozbalit Rozbalit vše Re: Problém s class v php
Díky, tak jsem to nemyslel, mám jednu metodu, která plní více proměnných různými výsledky.. Nástit, sice funguje ale myslím si, že to není správné řešení, jelikož to musím zbytečně tahat přes proměnnou $tmp. Snad jsem to napsal k pochopení. Díky
class Omg
{
  private $tmp;
  private $foo;
  private $bar;
  private $bar2;
 
  private function foo()
  {
    $this->method1('10');
    $this->foo = $this->tmp;

    $this->method1('20');
    $this->bar = $this->tmp;

    $this->method1('30');
    $this->bar2 = $this->tmp;

  }
  function method1($res)
  {
    $this->tmp = $res;
  }
}
 
$omg = new Omg;
$omg->foo; //10
$omg->bar; //20
$omg->bar2; //30
1.10.2013 12:34 Jara
Rozbalit Rozbalit vše Re: Problém s class v php
!! EDIT !!

Díky, tak jsem to nemyslel, mám jednu metodu, která plní více proměnných různými výsledky.. Nástit, sice funguje ale myslím si, že to není správné řešení, jelikož to musím zbytečně tahat přes proměnnou $tmp. Snad jsem to napsal k pochopení. Díky
class Omg
{
  private $tmp;
  private $foo;
  private $bar;
  private $bar2;
 
  private function __construct()
  {
    $this->method1('10');
    $this->foo = $this->tmp;

    $this->method1('20');
    $this->bar = $this->tmp;

    $this->method1('30');
    $this->bar2 = $this->tmp;

  }
  function method1($res)
  {
    $this->tmp = $res;
  }
}
 
$omg = new Omg;
$omg->foo; //10
$omg->bar; //20
$omg->bar2; //30
Tarmaq avatar 1.10.2013 12:40 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Problém s class v php
class Omg
{
  private $tmp;
  private $foo;
  private $bar;
  private $bar2;
  
  private function __construct()
  {
    $this->foo = $this->method1('10');
    $this->bar = $this->method1('20');
    $this->bar2 = $this->method1('30');
 
  }
  function method1($res)
  {
    return $res;
  }
}
  
$omg = new Omg;
$omg->foo; //10
$omg->bar; //20
$omg->bar2; //30
Don't panic!
1.10.2013 13:03 Jara
Rozbalit Rozbalit vše Re: Problém s class v php
Díky moc, toho použití return-u jsem se právě obával :-(
Tarmaq avatar 1.10.2013 13:05 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Problém s class v php
Proc?
Don't panic!
1.10.2013 13:24 Jara
Rozbalit Rozbalit vše Re: Problém s class v php
Vzhledem k velkému objemu zpracovávaných dat... myslím tím, že to spolkne hodně paměti, ale lepší řešení stejně neexistuje, jedině vše překopat a použít přímo echo();
Tarmaq avatar 1.10.2013 13:29 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Problém s class v php
tak dodej nejakej min umelohmotnej priklad, z tohohle kodu to na velke zpracovani dat nevypada..
Don't panic!
1.10.2013 13:47 Jara
Rozbalit Rozbalit vše Re: Problém s class v php
Ne, ;-) to byl jen příklad, letmé nastínění zpracovaných dat..
class Omg
{
  private $tmp;
  private $foo;
  private $bar;
  private $bar2;
   
  private function __construct()
  {
    $this->foo = $this->method1('1', '1000000');
    $this->bar = $this->method1('1000001', '2000000');
    $this->bar2 = $this->method1('2000001', '3000000');
  
  }
  function method1($res1, $res2)
  {
    # Načtu z mysql řádky od $res1 do $res2 a výsledek uložím do $ret.
    # některé sloupce v mysql obsahují data o více jak 500 znacích :-(
    return $ret;
  }
}
   
Babyčka mi říkala, nevracej to return-em, nebo jednoho krásného dne u dveří někdo zazvoní a nakope tě do prdele, a jestli nevíš kdo to bude, tak ti to řeknu, bude to server :-D
1.10.2013 14:19 Kit
Rozbalit Rozbalit vše Re: Problém s class v php
Chceš tím snad naznačit, že DB serveru posíláš 3 téměř stejné dotazy, které se liší pouze v LIMIT? Takže už víš, kam tě nakope ten DB server?
1.10.2013 14:29 Jara
Rozbalit Rozbalit vše Re: Problém s class v php
Ano, tak tomu více méně opravdu je.. víš snad o lepším způsobu? Doufám, že mi neporadíš, abych načetl celou DB a pak ji nějakým způsobem parsoval až v těch proměnných, tak výkoné železo zase nemám :-(
1.10.2013 15:37 axel
Rozbalit Rozbalit vše Re: Problém s class v php
Tak jak jsi to "letmo nastinil" je to na prvni pohled blbost. Dotahujes prvni tri miliony radku, coz lze udelat jednim dotazem. Proc by se to melo delat tremi dotazy po milionu - v cem si myslis, ze je to efektivnejsi? Jednoduse delas trikrat narocny dotaz misto abys ho udelal jednou.
1.10.2013 20:00 Kit
Rozbalit Rozbalit vše Re: Problém s class v php
Co si představuješ pod pojmem "parsoval"? To skutečně na výstup z toho PHP posíláš 3 milióny záznamů? Tak na to by sis asi nějaké silnější železo pořídit měl, protože rozdělení do tří polí nejenže nepomůže, ale navíc trojnásobně zatíží DB server.

Nevím, jak tvoje babyčka rozumí returnům, ale moje babička by mi je schválila, protože v PHP je to nejrychlejší způsob předání strukturovaného výsledku z funkce.
Josef Kufner avatar 1.10.2013 13:39 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Problém s class v php
function hello() {
  return array('foo', 'bar');
}

list($a, $b) = hello();
nebo
function hello(& $foo, & $bar) {
  $foo = 'foo';
  $bar = 'bar';
}

hello($a, $b);
V obou případech bude nakonci platit: $a == 'foo' && $b == 'bar'
Hello world ! Segmentation fault (core dumped)

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.