luk             Wed Feb 27 19:04:05 2002 EDT

  Added files:                 
    /phpdoc/cs/appendices       commandline.xml debugger.xml history.xml 
                                migration.xml 
  Log:
  
  
  

Index: phpdoc/cs/appendices/commandline.xml
+++ phpdoc/cs/appendices/commandline.xml
<?xml version="1.0" encoding="iso-8859-2"?>

<!-- 
   TODO:
   
     The command line options not in the
     list, but in the -h output below:
   
       -e, -z
    
     It would be best to document these, and
     collect more info about -c and -d!
-->
<appendix id="commandline">
 <title>Pou�it� PHP z p��kazov� ��dky</title>
 <para>
  Mo�nosti PHP p�i spou�t�n� z p��kazov� ��dky p�in�ej� mnoho u�itku,
  pokud chcete ladit nebo testovat va�e nastaven� PHP, hod� se v�ak
  i pro p��pady, kdy byste r�di pou�ili PHP pro jin� ��ely ne� WWW
  skriptov�n�.  
 </para>
 <para>
  Uv�domte si, �e m��ete v�dy sm�rovat v�stup programu PHP do vn�j��ho
  souboru pomoc� znaku &gt;, tak�e <literal>php -q test.php >
  test.html</literal> vytiskne v�stup <filename>test.php</filename>
  bez HTTP hlavi�ek do <filename>test.html</filename> ve stejn�m adres��i.  
 </para>
 <para>
  Mo�nosti p��kazov� ��dky m��ete vyu��vat pouze tehdy, m�te-li (spustiteln�)
  program PHP. Pokud jste zkompilovali pouze modul do serveru a nem�te na
  po��ta�i ��dnou CGI verzi, nem��ete p��kazovou ��dku pou��vat.
  Pro u�ivatele Windows je v bin�rn�m bal��ku jak serverov� modul, tak
  spustiteln� soubor nazvan� <filename>php.exe</filename>.
 </para>
 <para>
  Tento seznem voleb pro p��kazovou ��dku je konzistentn� s PHP 4.0.6.
  Aktu�ln� seznam v�etn� jedno��dkov�ch popis� m��ete z�skat pomoc� parametru
  <literal>-h</literal>. V�stup <literal>php -h</literal> by m�l vypadat
  p�ibli�n� takto:  
  <screen>
<![CDATA[
Usage: php [-q] [-h] [-s [-v] [-i] [-f <file>] |  {<file> [args...]}
  -q             Quiet-mode.  Suppress HTTP Header output.
  -s             Display colour syntax highlighted source.
  -f <file>      Parse <file>.  Implies `-q'
  -v             Version number
  -C             Do not chdir to the script's directory
  -c <path>      Look for php.ini file in this directory
  -d foo[=bar]   Define INI entry foo with value 'bar'
  -e             Generate extended information for debugger/profiler
  -z <file>      Load Zend extension <file>.
  -l             Syntax check only (lint)
  -m             Show compiled in modules
  -i             PHP information
  -h             This help
]]>
  </screen>
 </para>
 <para>
  Zde uv�d�me n�kter� z nejd�le�it�j��ch voleb s detailn�m vysv�tlen�m.  
 </para>
 <para>
  <table>
   <title>Volby pro p��kazovou ��dku</title>
   <tgroup cols="2">
    <thead>
     <row>
      <entry>Volba</entry>
      <entry>Popis</entry>
     </row>
    </thead>
    <tbody>
     <row>
      <entry>-q</entry>
      <entry>
       Potla�� v�stup HTTP hlavi�ek. Norm�ln� PHP tiskne HTTP hlavi�ky
       pro volaj�c� program (typicky WWW server) k p�ed�n� prohl��e�i.
       P�i pou�it� pro aplikace spou�t�n� z p��kazov� ��dky nemaj� hlavi�ky
       smysl.
      </entry>
     </row>
     <row>
      <entry>-s</entry>
      <entry>
       Zobraz� barevn� vysv�cen� zdrojov� soubor s dan�m n�zvem.
       Je to tot�, jako kdy� se zdroj vytiskne pomoc� funkce
       <function>highlight_file</function> v PHP skriptu.
      </entry>
     </row>
     <row>
      <entry>-f</entry>
      <entry>
       Parsuje dan� soubor a hled� syntaktick� a fat�ln� chyby.
       Tato volba implikuje -q. Pou�ijte pro ladic� ��ely
       (debugging).       
      </entry>
     </row>
     <row>
      <entry>-v</entry>
      <entry>
       Zavol�n�m PHP s t�mto p�ep�na�em si m��ete vypsat ��slo verze,
       nap�. 4.0.6.        
      </entry>
     </row>
     <row>
      <entry>-C</entry>
      <entry>
       Za norm�ln�ch okolnost� PHP m�n� pracovn� adres�� na ten, kde se
       nach�z� spou�t�n� skript. To nap��klad umo��uje otv�rat soubory
       ve stejn�m adres��i ur�en�m pouh�ho n�zvu souboru (bez cesty).
       Pokud byste toto cht�li potla�it, pou�ijte tuto volbu.       
      </entry>
     </row>
     <row>
      <entry>-c</entry>
      <entry>
       Pou�it�m tohoto argumentu m��ete specifikovat alternativn�
       um�st�n� souboru <filename>php.ini</filename>, tak�e PHP bude
       hledat konfigura�n� soubor zde nam�sto implicitn�ho um�st�n�.       
      </entry>
     </row>
     <row>
      <entry>-d</entry>
      <entry>
       Touto volbou m��ete prov�st individu�ln� nastaven�        
       <filename>php.ini</filename> b�hem prov�d�n� skriptu.
      </entry>
     </row>
     <row>
      <entry>-l</entry>
      <entry>
       Otestuje dan� soubor na syntaktick� chyby. Tato volba implikuje
       -q. Pou�ijte ji pro ��ely lad�n�. Nebudou se hledat fat�ln� chyby
       (jako jsou nedefinovan� funkce). Pokud chcete hledat i fat�ln�
       chyby, pou�ijte -f.       
      </entry>
     </row>
     <row>
      <entry>-m</entry>
      <entry>
       Pou�it�m t�to volby PHP vyp��e zabudovan� (a na�ten�) PHP a Zend
       moduly, ��sla verz� PHP a Zend, a tak� kr�tkou informaci o
       autorsk�ch pr�vech k j�dru Zend.       
      </entry>
     </row>
     <row>
      <entry>-i</entry>
      <entry>
       Tento p�ep�na� zavol� funkci <function>phpinfo</function> a vyp��e
       jej� v�sledek. Pokud PHP nepracuje spr�vn�, je dobr� spustit
       <literal>php -i</literal> a pod�vat se, zda se nevypsala n�jak�
       chybov� hl�en� p�ed nebo uvnit� informa�n�ch tabulek.
      </entry>
     </row>
     <row>
      <entry>-h</entry>
      <entry>
       Touto volbou z�sk�te informace o aktu�ln�ch volb�ch p��kazov� ��dky
       a jedno��dkov� popisy o tom, co d�laj�.       
      </entry>
     </row>
    </tbody>
   </tgroup>
  </table>
 </para>
 <para>
  Spustiteln� verze PHP m��e b�t pou�ita pro spou�t�n� skript� absolutn�
  nez�visle na webovsk�m serveru. Pokud jste na unixov�m syst�mu, m��ete
  do PHP skriptu p�idat speci�ln� prvn� ��dek a ud�lat z n�j spustiteln�
  program - syst�m bude v�d�t, jak� program by m�l skript zpracov�vat.
  Na Windows m��ete asociovat <literal>php.exe -q</literal> se souborovou
  p��ponou <literal>.php</literal> (pro spou�t�n� dvojklikem), nebo m��ete
  vytvo�it d�vkov� soubor pro spu�t�n� skriptu p�es PHP. Prvn� ��dek skriptu
  pro pr�ci v Unixu nebude ve Windows vadit, tak�e t�mto zp�sobem m��ete
  ps�t programy pro v�ce platforem. Jednoduch� p��klad psan� PHP programu
  pro p��kazovou ��dku je uveden n��e.    
 </para>
 <example>
  <title>Skript ur�en� ke spou�t�n� z p��kazov� ��dky (script.php)</title>
  <programlisting role="php">
<![CDATA[
#!/usr/bin/php -q
<?php

if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
?>

This is a command line PHP script with one option.

  Usage:
  <?php echo $argv[0]; ?> <option>

  <option> can be some word you would like
  to print out. With the --help, -help, -h,
  or -? options, you can get this help.

<?php
} else {
    echo $argv[1];
}
?>
]]>
  </programlisting>
 </example>
 <para>
  Ve v��e uveden�m skriptu jsme pou�ili speci�ln� prvn� ��dek k indikaci,
  �e by tento soubor m�l b�t spou�t�n pomoc� PHP a nem�l by vypisovat
  HTTP hlavi�ky. Jsou zde dv� prom�nn�, kter� m��ete pou��t p�i psan�
  aplikac� pro PHP spou�t�n�ch z p��kazov� ��dky:
  <varname>$argc</varname> a
  <varname>$argv</varname>. Prvn� z nich je po�et argument� + 1 (n�zev
  b��c�ho skriptu). Druh� je pole obsahuj�c� argumenty, po��naje n�zvem
  skriptu jako ��slo 0 (<varname>$argv[0]</varname>).
 </para>
 <para>
  V uk�zkov�m programu se testuje, zda je argument� v�ce �i m�n� ne� jeden.
  Pokud by argument byl <literal>--help</literal>,
  <literal>-help</literal>, <literal>-h</literal> nebo <literal>-?</literal>,
  vytiskne se n�pov�da k programu v�etn� skute�n�ho n�zvu skriptu.
  Pokud by byly p�id�ny n�jak� dal�� argumenty, vytisknou se na v�stup.  
 </para>
 <para>
  Pokud byste cht�li spou�t�t uveden� skript pod Unixem, mus�te ho ud�lat
  spustiteln�m (nastavit pr�va pro spou�t�n�), a pak jednodu�e napsat
  <literal>script.php vypis_tohle</literal> nebo
  <literal>script.php -h</literal>. Na Windows mus�te pro tento �kol vytvo�it
  d�vkov� soubor:  
 </para>
 <example>
  <title>D�vkov� soubor pro spou�t�n� PHP skriptu z p��kazov� ��dky 
(script.bat)</title>
  <programlisting role="winbat">
@c:\php\php.exe -q script.php %1 %2 %3 %4
  </programlisting>
 </example>
 <para>
  Za p�edpokladu, �e jste v��e uveden� program nazvali
  <filename>script.php</filename> a soubor
  <filename>php.exe</filename> m�te ulo�en� jako
  <filename>c:\php\php.exe</filename>, m��ete tento d�vkov� soubor spou�t�t
  takto:  
  <literal>script.bat echothis</literal> nebo
  <literal>script.bat -h</literal>.
 </para>
 <para>
  Viz tak� dokumentaci roz���en� <link linkend="ref.readline">Readline</link>,
  kde najdete v�ce funkc� pro pou�it� k aplikac�m PHP spou�t�n�ch z
  p��kazov� ��dky.  
 </para>
</appendix>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->

Index: phpdoc/cs/appendices/debugger.xml
+++ phpdoc/cs/appendices/debugger.xml
<?xml version="1.0" encoding="iso-8859-2"?>

 <appendix id="debugger">
  <title>Lad�n� (debugging) PHP</title>

  <sect1 id="debugger-about">
   <title>O debuggeru</title>
   <simpara>
    PHP 3 obsahuje pro podporu pro s��ov� zalo�en� debugger.
   </simpara>
   <simpara>
    PHP 4 nem� vnit�n� mechanismy pro lad�n�. Nicm�n� m��ete pou��vat
    n�kter� z extern�ch debugger�.    
    <ulink url="&url.zend.ide;">Zend IDE</ulink> obsahuje debugger, a
    ladic� roz���en� (jako DBG) najdete tak� na
    <ulink url="&url.dbg;">&url.dbg;</ulink> nebo na 
    <ulink url="&url.apd;">Advanced PHP Debugger</ulink> (APD).
   </simpara>
  </sect1>

  <sect1 id="debugger-using">
   <title>Pou�it� debuggeru</title>

   <para>
    Vnit�n� debugger v PHP 3 je u�ite�n� pro hled�n� z�ludn�ch chyb.
    Debugger pracuje prost�ednictv�m p�ipojen� na    
    <acronym>TCP</acronym> port p�i ka�d�m startu PHP 3.
    V�echny chybov� zpr�vy z p��slu�n� relace jsou pos�l�ny do tohoto TCP
    kan�lu. Tyto informace jsou ur�eny pro "debugging server", kter� m��e
    b�et uvnit� <acronym>IDE</acronym> nebo programovateln�ho editoru
    (jako je Emacs).
   </para>
   <para>
    Jak nastavit debugger:
    <orderedlist>
     <listitem>
      <simpara> 
       Nastavte TCP port pro debugger v <link
       linkend="configuration.file">konfigura�n�m souboru</link> (<link
       linkend="ini.debugger.port">debugger.port</link>) a aktivujte ho
       (<link linkend="ini.debugger.enabled">debugger.enabled</link>).
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       Nastavte TCP pro poslech na n�jak�m portu (nap��klad       
       <command>socket -l -s 1400</command> v UNIXu).
      </simpara>
     </listitem>
     <listitem>
      <simpara> 
       Ve va�em k�du spus�te       
       "debugger_on(<replaceable>host</replaceable>)", kde
       <replaceable>host</replaceable> je IP adresa nebo dom�nov� n�zev
       po��ta�e, kde b�� p��slu�n� <acronym>TCP</acronym> server.
      </simpara>
     </listitem>
    </orderedlist>
    Nyn� budou v�echna varov�n�, informativn� zpr�vy apod. m��it na s��ov�
    socket, <emphasis>a to i tehdy, pokud je vypnete pomoc� nastaven�
    <function>error_reporting</function></emphasis>.  
   </para>
  </sect1>

  <sect1 id="debugger-protocol">
   <title>Protokol debuggeru</title>
   <para>
    Protokol PHP 3 debuggeru je ��dkov� orientovan�. Ka�d� ��dek je ur�it�ho    
    <emphasis>typu</emphasis> a n�kolik ��dk� tvo��
    <emphasis>zpr�vu</emphasis>. Ka�d� zpr�va za��n� ��dkem typu
    <literal>start</literal> a kon�� ��dkem typu
    <literal>end</literal>. PHP 3 m��e sou�asn� pos�lat ��dky pro r�zn� zpr�vy.
   </para>
   <para>
    ��dek m� tento form�t:
    <informalexample>
     <literallayout>
<replaceable>date</replaceable> <replaceable>time</replaceable>
<replaceable>host</replaceable>(<replaceable>pid</replaceable>)
<replaceable>type</replaceable>:
<replaceable>message-data</replaceable>
     </literallayout>
    </informalexample>
    <variablelist>
     <varlistentry>
      <term><replaceable>date</replaceable></term>
      <listitem>
       <simpara>
        Datum ve form�tu ISO 8601
        
(<replaceable>yyyy</replaceable>-<replaceable>mm</replaceable>-<replaceable>dd</replaceable>)
       </simpara>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term><replaceable>time</replaceable></term>
      <listitem>
       <simpara>�as v�etn� mikrosekund:
        
<replaceable>hh</replaceable>:<replaceable>mm</replaceable>:<replaceable>uuuuuu</replaceable>
       </simpara>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term><replaceable>host</replaceable></term>
      <listitem>
       <simpara>
        DNS (dom�nov�) n�zev nebo IP adresa po��ta�e, kde byla vygenerov�na
        chyba ve skriptu.
       </simpara>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term><replaceable>pid</replaceable></term>
      <listitem>
       <simpara>
        PID (process id) na po��ta�i <replaceable>host</replaceable> procesu,
        kter� vygeneroval chybu v PHP 3 skriptu.        
       </simpara>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term><replaceable>type</replaceable></term>
      <listitem>
       <para>
        Typ ��dku. ��k� p�ij�maj�c�mu programu, jak m� s n�sleduj�c�mi
        daty nalo�it:   
        <table>
         <title>Typy ��dk� debuggeru</title>
         <tgroup cols="2">
          <thead>
           <row>
            <entry>N�zev</entry>
            <entry>V�znam</entry>
           </row>
          </thead>
          <tbody>
           <row>
            <entry><literal>start</literal></entry> 
            <entry>
             ��k� p�ij�maj�c�mu programu, �e tady za��n� zpr�va debuggeru.
             Obsahem datov� ��sti (<replaceable>data</replaceable>)bude typ
             chybov� zpr�vy z n��e uveden�ho seznamu.        
            </entry>
           </row>
           <row>
            <entry><literal>message</literal></entry>
            <entry>Chybov� zpr�va PHP 3.</entry>
           </row>
           <row>
            <entry><literal>location</literal></entry>
            <entry>
             N�zev souboru a ��slo ��dku, kde nastala chyba. Prvn� ��dek
             <literal>location</literal> bude v�dy obsahovat nejvy��� �rove�
             um�st�n�. <replaceable>data</replaceable> bude obsahovat
             
<literal><replaceable>file</replaceable>:<replaceable>line</replaceable></literal>.
             ��dek <literal>location</literal> bude n�sledovat za ka�d�m
             ��dkem <literal>message</literal> a ka�d�m ��dkem
             <literal>function</literal>.
            </entry>
           </row>
           <row>
            <entry>
             <literal>frames</literal></entry>
             <entry>Po�et r�mc� v n�sleduj�c�m v�pisu z�sobn�ku. Pokud jsou
             zde �ty�i r�mce, o�ek�vejte informace o �ty�ech �rovn�ch
             volan�ch funkc�. Pokud se ��dn� ��dek "frames" nevyskytuje,
             p�edpokl�d� se hloubka 0 (chyba nastala na nejvy��� �rovni).
            </entry>
           </row>
           <row>
            <entry>
             <literal>function</literal></entry> 
            <entry>
             N�zev funkce, kde nastala chyba. Bude se opakovat pro ka�dou
             �rove� z�sobn�ku vol�n� funkc�.         
            </entry>
           </row>
           <row>
            <entry><literal>end</literal></entry> 
            <entry>
             ��k� p�ij�maj�c�mu programu, �e tady kon�� zpr�va debuggeru.            
            </entry>
           </row>
          </tbody>
         </tgroup>
        </table>
       </para>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term><replaceable>data</replaceable></term>
      <listitem>
       <simpara>Data v ��dku.</simpara>
      </listitem>
     </varlistentry>
    </variablelist>

    <table>
     <title>Typy chyb rozli�ovan� debuggerem</title>
     <tgroup cols="2">
      <thead>
       <row>
        <entry>Debugger</entry>
        <entry>PHP 3 Internal</entry>
       </row>
      </thead>
      <tbody>
       <row>
        <entry><errortype>warning</errortype></entry>
        <entry><errortype>E_WARNING</errortype></entry>
       </row>
       <row>
        <entry><errortype>error</errortype></entry>
        <entry><errortype>E_ERROR</errortype></entry>
       </row>
       <row>
        <entry><errortype>parse</errortype></entry>
        <entry><errortype>E_PARSE</errortype></entry>
       </row>
       <row>
        <entry><errortype>notice</errortype></entry>
        <entry><errortype>E_NOTICE</errortype></entry>
       </row>
       <row>
        <entry><errortype>core-error</errortype></entry>
        <entry><errortype>E_CORE_ERROR</errortype></entry>
       </row>
       <row>
        <entry><errortype>core-warning</errortype></entry>
        <entry><errortype>E_CORE_WARNING</errortype></entry>
       </row>
       <row>
        <entry><errortype>unknown</errortype></entry>
        <entry>(v�echny ostatn�)</entry>
       </row>
      </tbody>
     </tgroup>
    </table>
    
    <example>
     <title>P��klad - zpr�va debuggeru</title>
     <literallayout>
1998-04-05 23:27:400966 lucifer.guardian.no(20481) start: notice
1998-04-05 23:27:400966 lucifer.guardian.no(20481) message: Uninitialized variable
1998-04-05 23:27:400966 lucifer.guardian.no(20481) location: (&null;):7
1998-04-05 23:27:400966 lucifer.guardian.no(20481) frames: 1
1998-04-05 23:27:400966 lucifer.guardian.no(20481) function: display
1998-04-05 23:27:400966 lucifer.guardian.no(20481) location: 
/home/ssb/public_html/test.php3:10
1998-04-05 23:27:400966 lucifer.guardian.no(20481) end: notice
     </literallayout>
    </example>
   </para>
  </sect1>

 </appendix>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->

Index: phpdoc/cs/appendices/history.xml
+++ phpdoc/cs/appendices/history.xml
<?xml version="1.0" encoding="iso-8859-2"?>

<appendix id="history">
 <title>Historie PHP a souvisej�c�ch projekt�</title>
 <para>
  PHP urazilo v posledn�ch n�kolika m�lo letech dlouhou cestu.
  R�st v jeden z nejprominentn�j��ch jazyk� ovl�daj�ch Web nebyl snadn�.
  Ti z v�s, kdo m�te z�jem dozv�d�t se ve zkratce, jak PHP vyrostlo do
  dne�n� podoby, �t�te d�le.  
 </para>
 
 <sect1 id="history.php">
  <title>Historie PHP</title>
  
  <sect2 id="history.phpfi">
   <title>PHP/FI</title>
   <para>
    PHP je n�stupcem star��ho produktu, nazvan�ho PHP/FI. PHP/FI vytvo�il
    Rasmus Lerdorf v roce 1995, na po��tku jako jednoduchou sadu skript�
    v jazyce Perl pro zpracov�n� z�znam� o p��stupech k jeho webu. Tuto
    sadu nazval 'Personal Home Page Tools'. Proto�e byla t�eba v�t��
    funk�nost, napsal Rasmus mnohem rozs�hlej�� implementaci v C, kter�
    byla schopna komunikovat s datab�zemi aumo��ovala u�ivatel�m vyv�jet
    jednoduch� dynamick� aplikace pro Web. Rasmus se rozhodl uvolnit
    zdrojov� k�d PHP/FI pro v�echny, tak�e kdokoli ho m��e pou��vat, stejn�
    jako opravovat chyby a vylep�ovat k�d.
   </para>
   <para>
    PHP/FI, co� znamen� Personal Home Page / Forms Interpreter, obsahovalo
    n�co ze z�kladn� funkcionality PHP, jak ho zn�me dnes. M�lo prom�nn�
    perlovsk�ho typu, automatickou interpretaci formul��ov�ch prom�nn�ch
    a syntaxi vlo�enou do HTML. Syntaxe samotn� byla podobn� jazyku Perl,
    p�esto�e mnohem omezen�j��, jednodu��� a v n��em nekonzistentn�.
   </para>
   <para>
    V roce 1997 se PHP/FI 2.0, druh� implementace psan� v C, stala kultovn�
    z�le�itost� pro (odhadem) tis�ce u�ivatel� po cel�m sv�t�, a s p�ibli�n�
    50.000 dom�nami oznamuj�c�mi nainstalovan� PHP/FI, co� ��talo zhruba
    1 % v�ech dom�n na Internetu. I kdy� do projektu za�alo sv�mi kusy k�du
    p�isp�vat v�ce lid�, st�le to byl velk� projekt jednoho mu�e.   
   </para>
   <para>
    PHP/FI 2.0 bylo ofici�ln� uvoln�no a� v listopadu 1997, pot� co str�vilo
    v�t�inu sv�ho �ivota v betaverz�ch. Kr�tce nato bylo n�sledov�no prvn�
    alfaverz� PHP 3.0.    
   </para>
  </sect2>

  <sect2 id="history.php3">
   <title>PHP 3</title>
   <para>
    PHP 3.0 byla prvn� verze, kter� se velmi bl��ila takov�mu PHP, jak ho
    zn�me dnes. Vytvo�ili ho Andi Gutmans a Zeev Suraski v roce 1997
    jako kompletn� p�epsan� celek, pot� co shledali PHP/FI 2.0 v�razn�
    "poddimenzovan�" pro v�voj sv�ch aplikac� pro e-komerci. Ve snaze
    spolupracovat a zah�jit budov�n� nad existuj�c� u�ivatelskou z�kladnou
    PHP/FI, rozhodli se Andi, Rasmus a Zeev pracovat spole�n� a prohl�sit
    PHP 3.0 za ofici�ln�ho n�stupce PHP/FI 2.0, a v�voj PHP/FI 2.0 byl
    v podstat� zastaven.
   </para>
   <para>
    Jednou z nejsiln�j��ch zbran� PHP 3.0 byly jeho obrovsk� mo�nosti
    roz���en�. K poskytnut� pevn� infrastruktury pro mnoho r�zn�ch datab�z�,
    protokol� a API koncov�m u�ivatel�m, p�il�kaly mo�nosti roz���en� PHP 3.0
    tak� tucty v�voj���, kte�� se p�ipojili a vytvo�ili nov� roz�i�uj�c�
    moduly. Toto byl nesporn� kl�� k obrovsk�mu �sp�chu PHP 3.0. Jin�m
    kl��ov�m prvkem v PHP 3.0 byla podpora objektov� orientovan� syntaxe
    a mnohem siln�j�� a konzistentn�j�� syntaxe jazyka.
   </para>
   <para>
    Nov� jazyk byl uvoln�n pod nov�m n�zvem, kter� odstranil implikaci
    omezen�ho osobn�ho pou�it�, kterou neslo ozna�en� PHP/FI 2.0.
    Byl nazv�n pouze 'PHP', co� je rekurz�vn� akronym
    - PHP: Hypertext Preprocessor.
   </para>
   <para>
    Na konci roku 1998 vyrostlo PHP do rozsahu instalac� v ��du (odhadem)
    des�tek tis�c u�ivatel� a stovek tis�c Web�. V dob� sv�ho vrcholu bylo
    PHP 3.0 instalov�no na p�ibli�n� 10 % v�ech WWW server� na Internetu.    
   </para>
   <para>
    PHP 3.0 bylo ofici�ln� uvoln�no v �ervnu 1998, pot� co str�vilo cca
    9 m�s�c� ve ve�ejn�m testov�n�.    
   </para>
  </sect2>

  <sect2 id="history.php4">
   <title>PHP 4</title>
   <para>
    V zim� 1998, kr�tce po ofici�ln�m uvoln�n� PHP 3.0, za�ali Andi Gutmans
    a Zeev Suraski pracovat na p�esp�n� j�dra PHP. C�lem n�vrhu bylo
    zv��it v�kon pro slo�it� aplikace a zlep�it modularitu k�dov� b�ze PHP.
    Takov� aplikace byly schopny pracovat s PHP 3.0 (d�ky nov�m mo�nostem a
    podpo�e �irok� �k�ly datab�z� a API od jin�ch tv�rc�), ale PHP 3.0
    nebylo navr�eno pro efektivn� pr�ci tak n�ro�n�ch aplikac�.
   </para>
   <para>
    Nov� engine, nazvan� 'Zend Engine' (sestaven z jejich k�estn�ch jmen,
    Zeev a Andi), �sp�n� splnil c�le n�vrhu a byl uveden v polovin� roku
    1999. PHP 4.0, zalo�en� na tomto enginu a dopln�n� �irokou �k�lou nov�ch
    prvk�, bylo ofici�ln� uvoln�no v kv�tnu 2000, necel� dva roky po sv�m
    p�edch�dci, PHP 3.0. K podstatn� zv��en�mu v�konu t�to verze, p�id�v�
    PHP 4.0 dal�� kl��ov� prvky, jako je podpora pro mnoho WWW server�,
    HTTP sessions, buffering v�stupu, bezpe�n�j�� zp�soby zpracov�n� vstup�
    u�ivatele a mnoho nov�ch jazykov�ch konstrukt�.
   </para>
   <para>
    PHP 4 je moment�ln� posledn� uvoln�nou verz� PHP. Ji� byla zapo�ata
    pr�ce na modifikaci a vylep�en� j�dra Zend Engine k integraci prvk�,
    kter� byly navr�eny pro PHP 5.0.    
   </para>
   <para>
    Dnes pou��vaj� PHP (odhadem) stovky tis�c v�voj��� a nainstalovan� PHP
    hl�s� n�kolik milion� server� - tj. p�es 20 % dom�n na Internetu.    
   </para>
   <para>
    V�vojov� t�m PHP zahrnuje tucty v�voj���, stejn� tak jako tucty dal��ch
    lid�, kte�� pracuj� na projektech spojen�ch s PHP, jako je PEAR a
    dokumenta�n� projekt.
   </para>
  </sect2>
 </sect1>
 
 <sect1 id="history.php.related">
  <title>Historie projekt� souvisej�c�ch s PHP</title>
  
  <!-- Hope Stig and/or Egon can do this
  
  <sect2 id="history.phpdoc">
   <title>PHP Documentation Project</title>
   <para>
   </para>
  </sect2>
  
  -->

  <sect2 id="history.pear">
   <title>PEAR</title>
   <para>
    PEAR, PHP Extension and Application Repository (�esky repozit��
    roz���en� a aplokac� PHP) - p�vodn� PHP Extension and Add-on Repository
    (repozit�� roz���en� a dopl�k�) - je PHP verze "foundation classes",
    a m��e v budoucnu vyr�st v jeden z kl��ov�ch zp�sob� distribuce jak
    PHP roz���en�, tak roz���en� PHP psan�ch v C, mezi v�voj��e.    
   </para>
   <para>
    PEAR se zrodil v diskusi na m�tinku PHP Developers' Meeting (PDM)
    v lednu 2000 v Tel Avivu. Byl vytvo�en Stigem S. Bakkenem a delegov�n
    na jeho prvorozenou dceru Malin Bakken.
   </para>
   <para>
    Od za��tku roku 2000 PEAR vyrostl ve velk�, v�znamn� projekt s velk�m
    po�tem v�voj��� pracuj�c�ch na spole�n�, �iroce pou�iteln� funkcionalit�
    ve prosp�ch cel� PHP komunity. PEAR dnes zahrnuje �irokou paletu
    infrastrukturn�ch "foundation classes" pro p��stup k datab�z�m, cachov�n�
    obsahu e-komerci a mnoho dal��ho.    
   </para>
  </sect2>

  <sect2 id="history.phpqa">
   <title>PHP Quality Assurance Initiative</title>
   <para>
    PHP Quality Assurance Initiative (iniciativa zaji�t�n� kvality PHP)
    byla ustavena v l�t� 2000 v rakci na kritiku, �e uvoln�n� verze PHP
    nebyly dostate�n� testov�ny pro produk�n� prost�ed�. T�m nyn� sest�v�
    z pevn� skupiny v�voj���, kte�� dob�e rozum�j� k�dov� b�zi PHP. Tito
    v�voj��i tr�v� mnoho �asu lokalizac� a odstra�ov�n�m chyb v PHP. Nav�c
    je zde mnoho �len� t�mu, kte�� to pak testuj� a poskytuj� zp�tnou vazbu
    na tyto opravy na �irok� �k�le platforem.
   </para>
  </sect2>

  <sect2 id="history.phpgtk">
   <title>PHP-GTK</title>
   <para>
    PHP-GTK je PHP �e�en� pro psan� GUI aplikac� pro stranu klienta. Andrei
    Zmievski p�ipom�n� pl�nov�n� a proces tvorby PHP-GTK:
   </para>
   <blockquote>
    <para>
     Programov�n� GUI v�dy pat�ilo mezi m� z�jmy a shledal jsem Gtk+
     velmi p��jemn�m toolkitem, krom� toho, �e programovat s jeho pou�it�m
     v C je n�kdy nudn�. Po zku�enostech s PyGtk a GTK-Perl implemetacemi
     jsem se rozhodl pod�vat se, zda by se dalo v PHP vytvo�it, alespo�
     trochu, rozhran� ke Gtk+. Po��naje srpnem 2000 jsem m�l o n�co v�ce
     voln�ho �asu, tak�e jsem za�al experimentovat. M�m hlavn�m vod�tkem
     byla implementace PyGtk, co� bylo skute�n� funk�n� kompletn� a p��jemn�
     objektov� orientovan� rozhran�. James Henstridge, autor PyGtk,
     mi poskytl velmi u�ite�n� rady b�hem po�ate�n�ho st�dia v�voje.
    </para>
    <para>
     Ru�n� psan� rozhran� ke v�em funkc�m Gtk+ bylo zcela mimo hru,
     tak�e jsem se zab�val ideou gener�toru k�du, podobn�ho jako v p��pad�
     PyGtk. Gener�tor k�du je program v PHP, kter� �te sadu .defs soubor�
     obsahuj�c�ch informace o t��d�ch, konstant�ch a metod�ch Gtk+ a
     generuje k�d v C, kter� pro n� poskytuje rozhran�. Co nelze vygenerovat
     automaticky, m��e b�t naps�no ru�n� v souboru .overrides.     
    </para>
    <para>
     Pr�ce na gener�toru k�du a na infrastruktu�e trvala n�jakou dobu,
     proto�e jsem na podzim 2000 mohl pr�ci na PHP-GTK v�novat jen m�lo
     �asu. Kdy� jsem to pak uk�zal Franku Kromannovi, byl zaujat a za�al mi
     pom�hat s prac� na gener�toru k�du a implementaci pro Win32. Kdy�
     jsme napsali prvn� program "Ahoj sv�te!" a spustili ho, bylo to
     extr�mn� vzru�uj�c�. Trvalo to n�kolik m�s�c�, ne� se projekt dostal
     do prezentovateln�ho stavu a �vodn� verze byla uvoln�na 1 .b�ezna 2001.
     P��b�h okam�it� zas�hl SlashDot.
    </para>
    <para>
     S ohledem na to, jak m��e b�t projekt PHP-GTK rozs�hl�, zalo�il jsem
     pro n�j samostatn� diskusn� skupiny a CVS repozit��e, stejn� jako
     (s pomoc� Colina Viebrocka) webovskou str�nku gtk.php.net. Tak� by bylo
     t�eba ud�lat dokumentaci a James Moore p�isp�chal pomoci s n�.
    </para>
    <para>
     Uvoln�n� verze PHP-GTK si ji� z�skala popularitu. M�me vlastn�
     dokumenta�n� t�m, manu�l se st�le zlep�uje, lid� za��naj� ps�t
     roz���en� pro PHP-GTK, a v�c a v�c vzru�uj�c�ch aplikac�.
    </para>
   </blockquote>
  </sect2>
 </sect1>

 <sect1 id="history.php.books">
  <title>Knihy o PHP</title>
  <para>
   Jak PHP rostlo, za�alo b�t pova�ov�no za celosv�tov� popul�rn� v�vojovou
   platformu. Jedn�m z nejzaj�mav�j��ch zp�sob� pozorov�n� tohoto trendu
   je sledov�n� knih o PHP vyd�van�ch b�hem posledn�ch let.
  </para>
  <para>
   Pokud si dob�e pamatujeme, prvn� kniha zam��en� na PHP
   'PHP - Dynamische Webauftritte professionell realisieren' - n�meck�
   kniha publikovan� v roce 1999, autory byli Egon Schmid,
   Christian Cartus and Richard Blume. Prvn� kniha v angli�tin� byla vyd�na
   kr�tce nato: 'Core PHP Programming' od Leona Atkinsona. Ob� tyto knihy
   se zab�valy PHP 3.0.
  </para>
  <para>
   Tyto dv� knihy byly prvn� sv�ho druhu - a byly n�sledov�ny velk�m
   mno�stv�m knih r�zn�ch autor� a vydavatel�. Existuje p�es 40 knih
   v angli�tin�, 50 knih v n�m�in� a p�es 20 knih ve francouz�tin�.
   Nav�c m��ete naj�t knihy o PHP v mnoha dal��ch jazyc�ch v�etn�
   �pan�l�tiny, korej�tiny, japon�tiny a hebrej�tiny.
  </para>
  <para>
   Samoz�ejm�, tento velk� po�et knih, psan�ch r�zn�mi autory, vyd�van�ch
   mnoha vydavateli a jejich dostupnost v tolika jazyc�ch - je potvrzen�m
   celosv�tov�ho �sp�chu PHP.
  </para>
 </sect1>
 
 <sect1 id="history.php.publications">
  <title>Ostatn� publikace o PHP</title>
  <para>
   Podle na�ich nejlep��ch informac� byl prvn� �l�nek o PHP v ti�t�n�m
   �asopisu publikov�n ve French Informatiques Magazine na konci roku 1998
   a zab�val se PHP 3.0. Stejn� jako v p��pad� knih byl prvn� v dlouh� �ad�
   �l�nk� publikovan�ch v r�zn�ch uzn�van�ch �asopisech.
  </para>
  <para>
   �l�nky o PHP se objevily v �asopisech Dr. Dobbs, Linux Enterprise,
   Linux Magazine a mnoha dal��ch. �l�nky o p�echod z aplikac� zalo�en�ch na
   ASP na platformu PHP pod Windows se objevily dokonce na ryze Microsoft�m
   MSDN!
  </para>
 </sect1>

</appendix>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->

Index: phpdoc/cs/appendices/migration.xml
+++ phpdoc/cs/appendices/migration.xml
<?xml version="1.0" encoding="iso-8859-2"?>

<appendix id="migration">
 <title>P�echod z PHP/FI 2 na PHP 3</title>

 <section id="migration.about">
  <title>O nekompatibilit�ch v 3.0</title>

  <simpara>
   PHP 3.0 je od z�kladu p�eps�no. M� n�le�it� parser, kter� je mnohem
   robustn�j�� a konzistentn�j�� ne� ten ve verzi 2.0. Verze 3.0 je
   tak� signifikantn� rychlej�� a pou��v� m�n� pam�ti. Logicky,
   n�kter� z t�chto vylep�en� nebyla mo�n� bez zm�n�ch v kompatibilit�,
   jak v syntaxi, tak ve funkcionalit�.
  </simpara>

  <simpara>
   Nav�c se v�voj��i PHP sna�ili vy�istit jak syntaxi, tak s�mantiku
   PHP, co� tak� p�ineslo n�jak� nekompatibility. Ze �ir��ho pohledu,
   v���me �e tyto zm�ny jsou pro dobro v�ci.   
  </simpara>

  <simpara>
   Tato kapitola se pokus� prov�st v�s nekompatibilitami, na kter� m��ete
   narazit p�i p�echodu z PHP/FI 2.0 na PHP 3.0 a pomoci v�m je vy�e�it.
   Nov� prvky zde nebudou zmi�ov�ny, pokud to nebude nutn�.
  </simpara>

  <simpara>
   Konverzn� program, kter� automaticky p�evede va�e star� skripty v
   PHP/FI 2.0, existuje. Najdete ho adres��i
   <filename class="directory">convertor</filename> v distribuci PHP 3.0.
   Tento program v�ak zachycuje pouze zm�ny syntaxe, tak�e p�esto pozorn�
   �t�te tuto kapitolu.
  </simpara>
 </section>

 <section id="migration.startendtags">
  <title>Otv�rac�/uzav�rac� zna�ky (start/end tags)</title>

  <para>
   Pravd�podobn� prvn� v�c�, kterou zaznamen�te, je, �e se zm�nily otev�rac�
   a uzav�rac� zna�ky (ozna�uj� za��tek a konec k�du PHP). Star� zna�ky
   <literal>&lt;? &gt;</literal> byly nahrazeny t�emi mo�n�mi formami:   
   <example>
    <title>P�echod: star� otv�rac�/uzav�rac� zna�ky</title>
    <programlisting role="php">
<![CDATA[
<? echo "This is PHP/FI 2.0 code.\n"; >
]]>
    </programlisting>
   </example>
   Jako verze 2.0, PHP 3.0 podporuje tak� tuto variantu:
   <example>
    <title>P�echod: prvn� otv�rac�/uzav�rac� zna�ky</title>
    <programlisting role="php">
<![CDATA[
<? echo "This is PHP 3.0 code!\n"; ?>
]]>
    </programlisting>
   </example>

   V�imn�te si, �e uzav�rac� zna�ka nyn� sest�v� z otazn�ku a znaku
   "v�t�� ne�" nam�sto pouh�ho znaku "v�t�� ne�". Bohu�el, pokud na sv�m
   serveru pl�nujete pou��vat XML, bude tato varianta d�lat probl�my,
   proto�e se PHP m��e pokou�et interpretovat XML zna�ku jako PHP k�d.
   Z tohoto d�vodu byla zavedena nov� varianta:   

   <example>
    <title>P�echod: druh� otv�rac�/uzav�rac� zna�ky</title>
    <programlisting role="php">
<![CDATA[
<?php echo "This is PHP 3.0 code!\n"; ?>
]]>
    </programlisting>
   </example>

   N�kte�� lid� maj� probl�my s editory, kter� zcela neporozum� zpracov�n�
   instruk�n�ch zna�ek. Jedn�m z takov�ch editor� je Microsoft FrontPage,
   a jako �e�en� tohoto probl�mu byla p�id�na je�t� dal�� varianta:   

   <example>
    <title>P�echod: t�et� otv�rac�/uzav�rac� zna�ky</title>
    <programlisting role="php">
<![CDATA[
<script language="php">

  echo "This is PHP 3.0 code!\n";

</script>
]]>
    </programlisting>
   </example>
  </para>
 </section>

 <section id="migration.if-endif">
  <title>syntaxe if..endif</title>

  <para>
   Alternativn� zp�sob, jak zapsat konstrukci if/elseif/else, za pou�it�
   if(); elseif(); else; endif;, nem��e b�t efektivn� implementov�na bez
   podstatn�ho n�r�stu slo�itosti 3.0 parseru. Kv�li tomu se zm�nila syntaxe:   
   <example>
    <title>P�echod: star� syntaxe if..endif</title>
    <programlisting role="php">
<![CDATA[
if ($foo);
    echo "yep\n";
elseif ($bar);
    echo "almost\n";
else;
    echo "nope\n";
endif;
]]>
    </programlisting>
   </example>
   <example>
    <title>P�echod: nov� syntaxe if..endif</title>
    <programlisting role="php">
<![CDATA[
if ($foo):
    echo "yep\n";
elseif ($bar):
    echo "almost\n";
else:
    echo "nope\n";
endif;
]]>
    </programlisting>
   </example>

   V�imn�te si, �e st�edn�ky byly nahrazeny dvojte�kami ve v�ech konstruktech
   krom� z�v�re�n�ho (endif).
  </para>
 </section>

 <section id="migration-while">
  <title>syntaxe while</title>
  <para>
   Stejn� jako if..endif, syntaxe while..endwhile byla zm�n�na:
   <example>
    <title>P�echod: star� syntaxe while..endwhile</title>
    <programlisting role="php">
<![CDATA[
while ($more_to_come);
    ...
endwhile;
]]>
    </programlisting>
   </example>
   <example>
    <title>P�echod: nov� syntaxe while..endwhile</title>
    <programlisting role="php">
<![CDATA[
while ($more_to_come):
    ...
endwhile;
]]>
    </programlisting>
   </example>
  </para>
  <warning>
   <simpara>
    Pokud v PHP 3.0 pou�ijete starou syntaxi while..endwhile, z�sk�te
    nekone�nou smy�ku.
   </simpara>
  </warning>
 </section>

 <section id="migration.expr">
  <title>Typy v�raz�</title>
  <simpara>
   PHP/FI 2.0 pou��valo levou stranu v�raz� k ur�en�, jak�ho typu m�
   v�sledek b�t. PHP 3.0 bere pro ur�en� typu v �vahu ob� strany v�razu,
   a to m��e zp�sobit nep�edv�dateln� chov�n� 2.0 skript� v PHP 3.0.   
  </simpara>
  <para>
   Uva�ujme tento p��klad:
   <informalexample>
    <programlisting role="php">
<![CDATA[
$a[0]=5;
$a[1]=7;

$key = key($a);
while ("" != $key) {
    echo "$keyn";
    next($a);
}
]]>
    </programlisting>
   </informalexample>

   V PHP/FI 2.0 by to zobrazilo ob� hodnoty v $a. V PHP 3.0 se v�ak
   nezobraz� nic. D�vod je ten, �e PHP 2.0 kv�li tomu, �e na lev� stran�
   je �etezec, provede porovn�n� �et�zc�, a <literal>""</literal>
   se nerovn� <literal>"0"</literal>, tedy se bude proch�zet cyklem.
   V PHP 3.0 se �et�zec porovn� s cel�m ��slem (integer), provede se
   porovn�n� cel�ch ��sel (�et�zec je p�eveden na cel� ��slo). V�sledkem
   je porovn�n� <literal>atoi("")</literal>, co� je <literal>0</literal>, a
   <literal>variablelist</literal>, co� je tak� <literal>0</literal>.
   A proto�e <literal>0==0</literal>, cyklem se v�bec proch�zet nebude.
  </para>
  <para>
   Oprava pro tento p��klad je snadn�. Nahra�te p�vodn� konstrukci t�mto:
   <informalexample>
    <programlisting role="php">
<![CDATA[
while ((string)$key != "") {
]]>
    </programlisting>
   </informalexample>
  </para>
 </section>

 <section id="migration.errors">
  <title>Chybov� zpr�vy se zm�nily</title>
  <simpara>
   Chybov� zpr�vy PHP 3.0 jsou obvykle p�esn�j��, ne� byly ve 2.0.
   Neuvid�te v�ak ��st k�du, kde nastala chyba. Vyp��e se pouze n�zev
   souboru a ��slo ��dku, kde nastala chyba.
  </simpara>
 </section>

 <section id="migration.booleval">
  <title>Zkr�cen� vyhodnocen� logick�ch v�raz�</title>
  <simpara>
   V PHP 3.0 se pou��v� zkr�cen� vyhodnocen� logick�ch v�raz�. To znamen�,
   �e pro v�raz jako <literal>(1 || test_me())</literal> ji� nebude funkce
   <function>test_me</function> vol�na, proto�e za <literal>1</literal> ji�
   nic nem��e ovlivnit hodnotu v�razu.
  </simpara>

  <simpara>
   Toto je mal� zm�na kompatibility,ale m��e zp�sobit neo�ek�van� vedlej��
   efekty.
  </simpara>
 </section>

 <section id="migration.truefalse">
  <title>N�vratov� hodnoty &true;/&false;</title>
  <simpara>
   V�t�ina vnit�n�ch funkc� byla p�eps�na tak, aby vracela &true;
   v p��pad� �sp�chu a &false; p�i selh�n�, narozd�l od p�vodn�ch hodnot
   0 a -1 v PHP/FI 2.0. Nov� chov�n� umo��uje logi�t�j�� programov�n�, jako
   <literal>$fp = fopen("/your/file") nebo fail("darn!");</literal>.
   Proto�e v PHP/FI 2.0 nebyla jasn� pravidla, v kter�ch p��padech se
   vyskakovalo z funkce p�i selh�n�, v�t�ina skript� bude pravd�podobn� muset
   b�t zkontrolov�na ru�n� po pou�it� konvertoru z 2.0 na 3.0.
  </simpara>
  <para>
   <example>
    <title>P�echod z 2.0: n�vratov� hodnoty, star� k�d</title>
    <programlisting role="php">
<![CDATA[
$fp = fopen($file, "r");
if ($fp == -1);
    echo("Could not open $file for reading<br>\n");
endif;
]]>
    </programlisting>
   </example>
   <example>
    <title>P�echod z 2.0: n�vratov� hodnoty, nov� k�d</title>
    <programlisting role="php">
<![CDATA[
$fp = @fopen($file, "r") or print("Could not open $file for reading<br>\n");
]]>
    </programlisting>
   </example>
  </para>
 </section>

 <section id="migration-other">
  <title>Jin� nekompatibility</title>

  <itemizedlist>
   <listitem><simpara>
    Modul PHP 3.0 pro Apache ji� nepodporuje verze Apache star�� ne� 1.2.
    Je t�eba Apache 1.2 nebo pozd�j��.
   </simpara></listitem>

   <listitem><simpara>
    Funkce <function>echo</function> ji� nepodporuje form�tovan� �et�zec.
    Pou�ijte nam�sto toho <function>printf</function>.
   </simpara></listitem>

   <listitem><simpara>
    V PHP/FI 2.0 zp�sobovaly vedlej�� efekty implementace to, �e
    <literal>$foo[0]</literal> m�lo stejn� ��inek jako
    <literal>$foo</literal>. Toto ji� v PHP 3.0 neplat�
   </simpara></listitem>

   <listitem>
    <simpara>
     �ten� z pol� pomoc� <literal>$array[]</literal> ji� nen� podporov�no.
    </simpara>
    <simpara>
     To znamen�, �e nem��ete traverzovat pole v cyklu, kter� prov�d�
     <literal>$data = $array[]</literal>.  Pou�ijte funkce
     <function>current</function> a <function>next</function>.
    </simpara>
    <simpara>
     Sou�asn�  <literal>$array1[] = $array2</literal> nep�ipojuje hodnoty pole
     <literal>$array2</literal> k poli
     <literal>$array1</literal>, n�br� p�ipojuje pole
     <literal>$array2</literal> jako posledn� polo�ku pole
     <literal>$array1</literal>. Viz t�: podpora v�cerozm�rn�ch pol�.
    </simpara>
   </listitem>

   <listitem>
    <simpara>
     <literal>"+"</literal> ji� nen� p�et�ov�n jako spojovac� oper�tor pro
     �et�zce, nam�sto toho konvertuje �et�zce na ��sla a provede jejich
     (numerick�) sou�et. Pou�ijte tedy oper�tor
     <literal>"."</literal> instead.
    </simpara>
   </listitem>
  </itemizedlist>

  <example>
   <title>P�echod z 2.0: spojen� �et�zc�</title>
   <programlisting role="php">
<![CDATA[
echo "1" + "1";
]]>
   </programlisting>
   <para>
    V PHP 2.0 by se vypsalo 11, v PHP 3.0 se vyp��e 2.
    Kdy� m�sto toho pou�ijete:
    <programlisting role="php">
<![CDATA[
echo "1"."1";
]]>
    </programlisting>
    <programlisting role="php">
<![CDATA[
$a = 1;
$b = 1;
echo $a + $b;
]]>
    </programlisting>
   </para>
   <para>
    vyp��e se 2 v PHP 2.0 i 3.0.
    <programlisting role="php">
<![CDATA[
$a = 1;
$b = 1;
echo $a.$b;
]]>
    </programlisting>
    Toto v PHP 3.0 vyp��e 11.
   </para>
  </example>
 </section>

</appendix>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->

Reply via email to