cvs: phpdoc-he /language functions.xml

[email protected] ("Moshe Doron") Mon, 28 Jul 2003 08:53:30 -0000
Newsgroups php.doc.he
Message-ID <cvsmomo1059382410@cvsserver>
momo		Mon Jul 28 04:53:30 2003 EDT

  Added files:                 
    /phpdoc-he/language	functions.xml 
  Log:
  initial functions lang guide
momo-20030728045330.txt (text/plain, 16.9 KB)
Index: phpdoc-he/language/functions.xml
+++ phpdoc-he/language/functions.xml
<?xml version="1.0" encoding="WINDOWS-1255"?>
<!-- $Revision: 1.1 $ -->
<!-- orginal-Revision: 1.40 -->
 <chapter id="functions">
  <title>ôåð÷öéåú</title>

  <sect1 id="functions.user-defined">
   <title>ôåð÷öéåú äîùúîù</title>
 
   <para>
    ôåð÷öéä éëåìä ìäéåú îåâãøú òì éãé ùéîåù áúçáéø ëâåï:
   </para>
   <para>
    <example>
     <title>÷åã îãåîä ùîãâéí àú äùéîåù áôåð÷öéåú:</title>
     <programlisting role="php">
<![CDATA[
<?php
function foo ($arg_1, $arg_2, ..., $arg_n)
{
    echo "Example function.\n";
    return $retval;
}
?>
]]>
     </programlisting>
    </example>
   </para>
   
   <!--
    
    status of func(const $param) ?
    zend doesn't care at all whether or not you specify it.
    I've never seen it before... what's its use? (or was...)
    
    -->
     
   <simpara>
   ëì ÷åã PHP çå÷é éëåì ìäåôéò áúåê ôåð÷öéåú, àôéìå äâãøú ôåð÷öéä àå  <link linkend="keyword.class">îçì÷ä</link>
   </simpara>
   <simpara>
    áPHP3 ôåð÷öéåú çééáåú ìäéåú îåâãøåú ìôðé ùîùúîùéí áäí. áPHP4 äîâáìä äæå áåèìä. <emphasis>ìîòè</emphasis> ëàùø ôåð÷öéä îåâãøú áäúçùá áúðàé îñåééí, ëâåï ùðé äãåâîàåú äîåáàåú ìîèä.
   </simpara>
   <para>
    ëàùø äâãøú ôåð÷öéä îåúðé, ääâãøä çééáú ìäåôéò  <emphasis>ìôðé</emphasis>
    äùéîåù áä.
   </para>
   <para>
    <example>
     <title> ôåð÷öéåú îåúðåú</title>
     <programlisting role="php">
<![CDATA[
<?php

$makefoo = true;

/* We can't call foo() from here 
   since it doesn't exist yet,
   but we can call bar() */

bar();

if ($makefoo) {
  function foo ()
  {
    echo "I don't exist until program execution reaches me.\n";
  }
}

/* Now we can safely call foo()
   since $makefoo evaluated to true */

if ($makefoo) foo();

function bar() 
{
  echo "I exist immediately upon program start.\n";
}

?>
]]>
     </programlisting>
    </example>
   </para>
   <para>
    <example>
     <title>ôåð÷öéåú áúåê ôåð÷öéåú</title>
     <programlisting role="php">
<![CDATA[
<?php
function foo() 
{
  function bar() 
  {
    echo "I don't exist until foo() is called.\n";
  }
}

/* We can't call bar() yet
   since it doesn't exist. */

foo();

/* Now we can call bar(),
   foo()'s processesing has
   made it accessable. */

bar();

?>  
]]>
     </programlisting>
    </example>
   </para>
   <simpara>
    PHP àéððå îàôùø äòîñä, ëìåîø äâãøä ùì ôåð÷öéä ùðéú òì îðú ìøîåñ àú ääâãøä ä÷åãîú, ëîå ëï àéï ëì ãøê ìáèì äâãøú ôåð÷öéä àå ìäçìéó ëæå.
   </simpara>
   <note>
    <simpara>
     ùîåú ôåð÷öéåú àéðí øâéùéí ìàåúéåú àðâìéåú âãåìåú àå ÷èðåú, ìîøåú æàú úîéã èåá ìëúåá àú ùîåú äôåð÷öéåú ëôé ùäí îúåòãåú.
    </simpara>
   </note>   
   <simpara>
    PHP3 ìà úåîê á÷áìú îñôø ãéðàîé ùì ôøîèøéí áúåê ôåð÷öéä, àåìí äåà úåîê áòøê áøéøú îçãì ìôøîèø (øàä <link
    linkend="functions.arguments.default">òøëé áøéøú îçãì</link> ìôøèéí ðåñôéí). PHP4 úåîê áùðéäí. øàä: <link
    linkend="functions.variable-arg-list">àåøê îùúðä ìøùéîú àøâåîðèéí</link> åäâãøåú äôåð÷öéä ùì
    <function>func_num_args</function>,
    <function>func_get_arg</function> å
    <function>func_get_args</function> ìôøèéí ðåñôéí.
   </simpara>

  </sect1>
 
  <sect1 id="functions.arguments">
   <title>äôøîèøéí äîåòáøéí ìôåð÷öéä (àøâåîðèéí)</title>
 
   <simpara>
    äàéðôåøîöéä éëåìä ìäéåú îåòáøú ìôåð÷öéä áøùéîú äàøâåîðèéí,
    øùéîä äîåôøãú òì éãé ôñé÷éí ùì îùúðéí å÷áåòéí.
   </simpara> 
   <para>
    PHP úåîê áäòáøú äòøê ùì äîùúðéí (áøéøú îçãì), <link
    linkend="functions.arguments.by-reference">äòáøä òì ôé îøàä î÷åí</link>, å <link
    linkend="functions.arguments.default">òøê áøéøú îçãì ìàøâåîðè</link>. øùéîåú àøâåîðèéí îùúðåú ðúîëåú äçì îPHP4 åàéìê; øàä <link
    linkend="functions.variable-arg-list">àåøê øùéîú àøâåîðèéí ùàéððå ÷áåò</link> åáúéòåã äôåð÷öéåú 
    <function>func_num_args</function>,
    <function>func_get_arg</function>, å
    <function>func_get_args</function> ìôøèéí ðåñôéí. àôùø ìäâéò ìàô÷è ãåîä òì éãé äòáøú îòøê äîëéì îñôø ôøîèøéí ìôåð÷öéä:
   </para>
   <para>
    <example>
     <title>äòáøú îòøê ìôåð÷öéä</title>
     <programlisting role="php">
<![CDATA[
<?php
function takes_array($input)
{
    echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>
]]>
     </programlisting>
    </example>
   </para>
 
   <sect2 id="functions.arguments.by-reference">
    <title>äòáøú àøâåîðèéí òì éãé îøàä î÷åí (øéôøðññ)</title>
 
    <simpara>
     áøéøú äîçãì äéà ùäàøâåîðèéí îåòáøéí ìôåð÷öéåú ë"òøê" (ëìåîø àí àúä îùðä àú äòøê áúåê äôåð÷öéä àéï äãáø îùôéò òì òøê äîùúðä ùðùìç ìôåð÷öéä). àí àúä øåöä ìàôùø ìôåð÷öéä ìùðåú àú äòøëéí, àúä çééá ìäòáéø àåúí ëîøàä î÷åí (ìäìï øéôøðñ).
    </simpara>
    <para>
     àí áøöåðê ìäòáéø àøâåîðè ìôåð÷öéä ëøéôøðñ òìéê ìä÷ãéí ìå àôøñðè (&amp;) áäâãøú äôåð÷öéä:
    </para>
    <para>
     <example>
      <title>äòáøú ôøîèøéí ìôåð÷öéåú ëøéôøðñ</title>
      <programlisting role="php">
<![CDATA[
<?php
function add_some_extra(&$string)
{
    $string .= 'and something extra.';
}
$str = 'This is a string, ';
add_some_extra($str);
echo $str;    // outputs 'This is a string, and something extra.'
?>
]]>
      </programlisting>
     </example>
    </para>
 
   </sect2>
 
   <sect2 id="functions.arguments.default">
    <title>òøëé áøéøú îçãì ìàøâåîðèéí</title>
 
    <para>
     òøëé áøéøú îçãì éëåìéí ìäéåú îåâãøéí ëîå áC++:
    </para>
    <para>
     <example>
      <title>ùéîåù áòøëé áøéøú îçãì áôåð÷öéä:</title>
      <programlisting role="php">
<![CDATA[
<?php
function makecoffee ($type = "cappuccino")
{
    return "Making a cup of $type.\n";
}
echo makecoffee ();
echo makecoffee ("espresso");
?>
]]>
      </programlisting>
     </example>
    </para>
 
    <para>
     äôìè ùì äãåâîà ðøàä ëê:
    </para>
    <para>
     <screen>
Making a cup of cappuccino.
Making a cup of espresso.
     </screen>
    </para>
 
    <simpara>
     òøê áøéøú äîçãì çééá ìäéåú òøê ÷áåò, ìà (ìãåâîà) îùúðä, àéáø îçì÷ä àå ÷øéàä ìôåð÷öéä.
    </simpara>
    <para>
     ùéí ìá ìëê ùëàùø îùúîùéí áòøê áøéøú îçãì, ëì äáøéøåú îçãì öøéëéí ìäéåú áçì÷ äéîðé ùì øùéîú äôøîèøéí; àçøú äãáøéí ìà éòáãå ëîúåëðï. ùéí ìá ì÷èò ä÷åã äáà:
    </para>
    <para>
     <example>
      <title>ùéîåù ìà ðëåï áòøëé áøéøú îçãì</title>
      <programlisting role="php">
<![CDATA[
<?php
function makeyogurt ($type = "acidophilus", $flavour)
{
    return "Making a bowl of $type $flavour.\n";
}
 
echo makeyogurt ("raspberry");   // won't work as expected
?>
]]>
      </programlisting>
     </example>
    </para>
 
    <para>
     äôìè ùì äãåâîà äåà ëê:
    </para>
    <para>
     <screen>
Warning: Missing argument 2 in call to makeyogurt() in 
/usr/local/etc/httpd/htdocs/php3test/functest.html on line 41
Making a bowl of raspberry .
     </screen>
    </para>
    <para>
     òëùéå, äùååä àú äãåâîà ùìîòìä òí äãåâîà äáàä:
    </para>
    <para>
     <example>
      <title>ùéîåù ðëåï áòøëé áøéøú îçãì</title>
      <programlisting role="php">
<![CDATA[
<?php
function makeyogurt ($flavour, $type = "acidophilus")
{
    return "Making a bowl of $type $flavour.\n";
}
 
echo makeyogurt ("raspberry");   // works as expected
?>
]]>
      </programlisting>
     </example>
    </para>
 
    <para>
     ôìè äãåâîà äåà:
    </para>
    <para>
     <screen>
Making a bowl of acidophilus raspberry.
     </screen>
    </para>

   </sect2>

   <sect2 id="functions.variable-arg-list">
    <title>øùéîú àøâåîðèéí áàåøê îùúðä</title>
	
    <simpara>
     PHP4 úåîëú áäòáøú øùéîú ôøîèøéí áàåøê îùúðä ìôåð÷öéåú äîåâãøåú ò"é äîùúîù. äð"ì ðòùä áôùèåú ò"é ùéîåù áôåð÷öéåú äáàåú:
     <function>func_num_args</function>,
     <function>func_get_arg</function>, å
     <function>func_get_args</function>.
    </simpara>

    <simpara>
     àéï öåøê áäâãøåú îéåçãåú, àôéìå àí äâãøú äôåð÷öéä úëéì øùéîú àøâåîðèéí ñèðãøèéú äôåð÷öéåú äð"ì òãééï éòáãå.
    </simpara>

   </sect2>

  </sect1>
 
  <sect1 id="functions.returning-values">
   <title>äçæøú òøëéí</title>
 
   <para>
    òøëéí îåçæøéí òì éãé ùéîåù áô÷åãä return. ëì ñåâ îùúðä ëâåï
    îçì÷åú åîòøëéí éëåì ìäéåú îåçæø. äô÷åãä âåøîú ìéöéàä îäôåð÷öéä åìäçæøú äùìéèä ì÷åã îîðå ð÷øàä äôåð÷öéä. øàä <function>return</function>
    ìôøèéí ðåñôéí.
   </para>
   <para>
    <example>
     <title>ùéîåù á <function>return</function></title>
     <programlisting role="php">
<![CDATA[
<?php
function square ($num)
{
    return $num * $num;
}
echo square (4);   // outputs '16'.
?>
]]>
     </programlisting>
    </example>
   </para>
      
   <para>
    ìîøåú ùàéðê éëåì ìäçæéø îñôø îùúðéí, àúä éëåì ìäâéò ìàô÷è äðãøù òì éãé äçæøú øùéîä.
   </para>
   <para>
    <example>
     <title>äçæøú îòøê åáå îñôø òøëéí</title>
     <programlisting role="php">
<![CDATA[
<?php
function small_numbers()
{
    return array (0, 1, 2);
}
list ($zero, $one, $two) = small_numbers();
?>
]]>
     </programlisting>
    </example>
   </para>
   <para>
    ìäçæéø øéôøðñ îôåð÷öéä òìéê ìäùúîù áñéîåï äøéôøðñ &amp; áùðé î÷åîåú, áäâãøú äôåð÷öéä åáäùîú äòøê ìúåê îùúðä á÷øéàä ìôåð÷öéä:
   </para>
   <para>
    <example>
     <title>äçæøú øéôøðñ îôåð÷öéä</title>
     <programlisting role="php">
<![CDATA[
<?php
function &returns_reference()
{
    return $someref;
}

$newref =& returns_reference();
?>
]]>
     </programlisting>
    </example>
   </para>
   <simpara>
    ìôøèéí ðåñôéí ìâáé øéôøðññ, øàä <link
    linkend="language.references">äñáøú øéôøðññ</link>.
   </simpara>
  </sect1>
 
  <sect1 id="functions.variable-functions">
   <title>îùúðé ôåð÷öéåú</title>

   <para>
    PHP úåîëú áîåùâ ùì îùúðé ôåð÷öéåú. äëååðä äéà ùàí ìîùúðä
    éåñôå ñåâøééí, PHP úðñä ìçôù ôåð÷öéä áùí àåúå îëéì äîùúðä
    åìäøéõ àåúä. áúåê ëì äãáøéí äîâðéáéí ùðéúï ìòùåú òí äãáø äæä, ðéúï ìééùí
    èáìú ôåð÷öéåú, callbacks åëï äìàä.
   </para>
   <para>
    îùúðé ôåð÷öéåú ìà òåáãéí òí øëéáé äùôä ëâåï <function>echo</function>, <function>print</function>,
    <function>unset</function>, <function>isset</function>,
    <function>empty</function>, <function>include</function>,
    <function>require</function> åëãå'. àí àúä øåöä ìäùúîù áäí ëîùúðé ôåð÷öéåú, àúä öøéê ì"òèåó" àåúí áôåð÷öéåú îùìê.
   </para>
   <para>
    <example>
     <title>ãåâîà ìîùúðé ôåð÷öéåú</title>
     <programlisting role="php">
<![CDATA[
<?php
function foo()
{
    echo "In foo()<br>\n";
}

function bar($arg = '')
{
    echo "In bar(); argument was '$arg'.<br>\n";
}

// This is a wrapper function around echo
function echoit($string)
{
    echo $string;
}

$func = 'foo';
$func();        // This calls foo()

$func = 'bar';
$func('test');  // This calls bar()

$func = 'echoit';
$func('test');  // This calls echoit()
?>
]]>
     </programlisting>
    </example>
   </para>
   <para>
    ðéúï âí ì÷øåà ìùéèä ùì àåáéé÷è òì éãé ùéîåù áîùúðé ôåð÷öéåú.
    <example>
     <title>ãåîîà ìîùúðä ùéèä</title>
     <programlisting role="php">
<![CDATA[
<?php
class Foo
{
    function Var()
    {
        $name = 'Bar';
        $this->$name(); // This calls the Bar() method
    }
    
    function Bar()
    {
        echo "This is Bar";
    }
}

$foo = new Foo();
$funcname = "Var";
$foo->$funcname();  // This calls $foo->Var()

?>
]]>
     </programlisting>
    </example>
   </para>
   <para>
    øàä âí <function>call_user_func</function>,
    <link linkend="language.variables.variable">
    îùúðé îùúðéí</link> å <function>function_exists</function>.
   </para>
  </sect1>
  
  <sect1 id="functions.internal">
   <title>ôåð÷öéåú ôðéîéåú</title>
   
   <para>
    PHP áà òí äøáä ôåð÷öéåú å÷áåòéí.  éùðí âí ôåð÷öéåú 
    ùìäøöúí ðãøùú äøçáä ñôöéôéí î÷åîôìú áúåê PHP. àçøú ú÷áì 
    àú äùâéàä äôèàìéú "undefined function".
    ìãåâîà, ìöåøê ùéîåù áôåð÷öéåú
    <link linkend="ref.image">image</link> ëâåï
    <function>imagecreatetruecolor</function>, àúä öøéê ùäPHP é÷åîôì òí úîéëä áGD.
    àå, òì îðú ìäùúîù á <function>mysql_connect</function> àúä öøéê ùäPHP
    é÷åîôì òí úîéëä á<link linkend="ref.mysql">MySQL</link>.
    éùðí ôåð÷öéåú âøòéðéåú øáåú ùî÷åîôìåú òí ëì âéøñä ùì PHP ëâåï ôåð÷öéåú <link linkend="ref.strings">string</link> å
    <link linkend="ref.variables">variable</link>.
    ÷øéàä ì <function>phpinfo</function> àå
    <function>get_loaded_extensions</function> éøàå ìê àéæå äøçáä äåèòðä ìúåê äPHP.
    ùéí ìá ùäøáä äøçáåú î÷åîôìåú ìúåê äPHP ëáøéøú îçãì åùäôåð÷öéåú áîãøéê îçåì÷åú òì ôé ääøçáä.
    øàä <link linkend="configuration">÷åðôéâåøöéä</link>,  
    <link linkend="installation">äú÷ðä</link>, åàú äôø÷ áîãøéê òáåø ëì äøçáä, òì îðú ìîöåà ëéöã áãéå÷ ìäôòéì àú ääøçáä.
   </para>
   <para>
    ÷øéàä åäáðä ùì îáðä äôåð÷öéåú (äîëåðä ôøåèåèééô) äîåáà áîãøéê îåáà áôø÷
    <link linkend="about.prototypes">ëéöã ì÷øåà àú äâãøú äôåð÷öéåú</link>.
    æä çùåá ìäáéï îä äôåð÷öéä îçæéøä åäàí äéà òåáãú éùéøåú òì äîùúðä ùäåòáø àìéä.  ìãåâîà,
    <function>str_replace</function> úçæéø àú äîçøåæú ùäùúðúä áòåã ù
    <function>usort</function> òåáãú òì äîùúðä ùäåòáø áòöîå.
    ìëì ãó áîãøéê éù âí ðúåðéí ùåðéí ìâáé ëì ôåð÷öéä ëâåï àéðôåøîöéä ìâáé äôøîèøéí,
    ùéðåééí áäúðäâåú, òøëéí äîåçæøéí ëàùø äôåðöéä îöìéçä àå ðëùìú åàéðôåøîöéä ìâáé æîéðåú.
    éãéòú äçéìå÷éí äã÷éí äììå äéà çéåðéú ìëúéáú ÷åã PHP îùåáç.
   </para>
   <para>
   øàä <function>function_exists</function>, 
    <link linkend="funcref">îôúç äôåð÷öéåú</link>,
    <function>get_extension_funcs</function>, å
    <function>dl</function>.
   </para>
  </sect1>

 </chapter>
 
<!-- 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:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->