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