constants.xml

[email protected] (Gustav Tiger) Sat, 31 Jan 2004 20:55:20 +0100
Newsgroups php.doc.sv
Message-ID <[email protected]>
Okay, den här verkar ska fungera. Det gör den iaf för mig.
Ni kan väl kika på den och se om det är något som måste
ändras eller göras om.

Är den okay och skaplig nog för att komma in i manualen så är
det mycket möjligt att jag fortsätter och översätter mer.

Tack
_________________________________________
Gustav Tiger
Bergs Gymnasium

Sweden
constants.xml (text/xml, 7.3 KB)
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.35 $ -->
 <chapter id="language.constants">
  <title>Konstanter</title>

  <simpara>
   En konstant är en identifierare (ett namn) med ett enkelt värde. 
			Precis som namnet antyder är det ett värde som inte kan ändras under 
			skriptets körning (med undantag för 
			<link linkend="language.constants.predefined">magiska konstanter</link>, 
			som egentligen inte är konstanter). En konstant är teckenkänslig som 
			standard. Enligt en allmän accepterad uppfattning så 
			ska konstantnamnen <emphasis>alltid</emphasis>  skrivas med versaler.
  </simpara>
  <para>
   Namnet på en konstant följer samma regler som vilken variabel som helst 
	  i PHP. Ett korrekt konstantnamn börjar med en bokstav eller ett 
	  understreck, följt av ett antal siffror, nummer eller understreck. 
	  Som ett reguljärt uttryck, skulle det uttryckas så här:
   <literal>[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*</literal>

   <!-- TODO: Example of valid & invalid constant names -->
  </para>
  <note>
   <simpara>
    En bokstav är här definierat som a-z, A-Z och ASCII-tecknen 127 till 255 
		  (0x7f-0xff). Detta innebär att våra svenska tecken (å, ä och ö) 
				kan användas.
   </simpara>
  </note>

  <simpara>
   Liksom &link.superglobals; är konstanternas räckvidd global. Du kan 
   komma åt konstanter vart som helst i ditt skript utan att behöva tänka på 
			räckvidden. För mer information om räckvidd, läs mer i kapitlet om 
			<link linkend="language.variables.scope">räckvidd</link>.
  </simpara>

  <sect1 id="language.constants.syntax">
   <title>Syntax</title>
   <simpara>
    Du kan definiera en konstant genom att använda 
    <function>define</function>-funktionen. När en konstant har blivit 
				definierad kan den aldrig ändras eller bli odefinierad igen.
   </simpara>
   <simpara>
    Konstanter kan bara innehålla värden av datatyper som <type>boolean</type>, 
				<type>integer</type>, <type>float</type> och <type>string</type>
			</simpara>
   <simpara>
    Du kan få ut konstantens värde genom att helt enkelt skriva dess namn.
    I motsats till variabler ska du <emphasis>inte</emphasis> ha ett
    dollartecken (<literal>$</literal>) framför dess namn.
    Du kan också använda funktionen <function>constant</function> för
    att läsa en konstants värde om du vill kunna få namnet dynamiskt med hjälp
				av en variabel. Använd funktionen <function>get_defined_constants</function> 
				för att få en få en lista med alla definierade konstanter.
   </simpara>
			<!-- Är osäker på översättning en av följande stycke... -->
   <note>
    <simpara>
     Konstanter och (globala) variabler ligger i olika namnutrymmen.
     Detta betyder att till exempel &true; och <varname>$TRUE</varname> 
					vanligtvis är olika
    </simpara>
   </note>
   <simpara>
    Om du använder en odefinierad konstant så tror PHP att du menar
    namnet på själva konstanten som om det vore en <type>string</type> 
				(jämför KONSTANT och "KONSTANT").  Ett fel på 
    <link linkend="ref.errorfunc">E_NOTICE</link>-nivån kommer att utfärdas
    om detta händer. Läs också om varför 
    <link linkend="language.types.array.foo-bar">$foo[bar]</link> är
    fel att skriva (om du inte först definerat <literal>bar</literal> 
				som en konstant). Vill du se om en konstant är definierad kan du använda 
				funktionen <function>defined</function>.
   </simpara>
   <para>
    Skillnaderna mellan konstanter och variabler:
    <itemizedlist>
     <listitem>
      <simpara>
       Konstanter har inte ett dollartecken (<literal>$</literal>)
       före namnet;
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       Konstanter kan bara definieras genom att använda funktionen 
       <function>define</function> och inte genom vanlig tilldelning;
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       Konstanter kan definieras och kommas åt överallt utan hänseende 
							till räckvidder på variabler;
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       Konstanter får inte omdefinieras eller bli odefinierade när de
							väl har blivit satta; och
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       Konstanter får bara innehålla värden av enkla typer.
							(<type>boolean</type>, <type>integer</type>, 
							<type>float</type> och <type>string</type>)
       </simpara>
     </listitem>
    </itemizedlist>
   </para>

   <para>
    <example>
     <title>Definiera konstanter</title>
     <programlisting role="php">
<![CDATA[
<?php
define("KONSTANT", "Hej världen.");
echo KONSTANT; // skriver ut "Hello world."
echo Konstant; // skriver ut "Konstant" och utfärdar en notis.
?>
]]>
     </programlisting>
    </example>

   </para>
  </sect1>
  
  <sect1 id="language.constants.predefined">
   <title>Fördefinierade konstanter</title>

   <simpara>
    PHP tillhandahåller ett stort nummer av fördefinierade konstanter
				till alla skript den kör. Många av dessa konstanter är skapade av
				olika tillägg och kommer bara att finnas när dessa tillägg är 
				tillgängliga, vare sig de är dynamisk laddade eller om de är
				kompilerade tillsammans med PHP.
   </simpara>
   
   <para>
    Det finns fem magiska konstanter som ändras beroende på var
				de är använda. Ett exempel är värdet på 
				<constant>__LINE__</constant>. Den ändras för varje rad i 
				ditt skript. Dessa konstanter är teckenkänsliga. Här är en lista:
   </para>
   <para>
    <table>
     <title>Några "magiska" PHP-konstanter</title>
     <tgroup cols="2">
      <thead>
       <row>
        <entry>Namn</entry>
        <entry>Beskrivning</entry>
       </row>
      </thead>
      <tbody>
       <row>
        <entry><constant>__LINE__</constant></entry>
        <entry>
         Det aktuella radnummeret i filen.
        </entry>
       </row>
       <row>
        <entry><constant>__FILE__</constant></entry>
        <entry>
         Fullständig sökväg och namn till den aktuella filen.
        </entry>
       </row>
       <row>
        <entry><constant>__FUNCTION__</constant></entry>
        <entry>
         Det aktuella funktionsnamnet. (Det här lades till i PHP 4.3.0.)
        </entry>
       </row>
       <row>
        <entry><constant>__CLASS__</constant></entry>
        <entry>
         Det aktuella klassnamnet. (Det här lades till i PHP 4.3.0.)
        </entry>
       </row>
       <row>
        <entry><constant>__METHOD__</constant></entry>
        <entry>
         Den aktuella klassens metodnamn. (Det här lades till i PHP 5.0.0)
        </entry>
       </row>
      </tbody>
     </tgroup>
    </table>
   </para>

   <simpara>
    En lista på fördefinerade konstanter finns i kapitlet om 
				<link linkend="reserved.constants">reserverade konstanter</link>.
   </simpara>


  </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
-->