basic-syntax.xml
[email protected] (Gustav Tiger) Fri, 05 Mar 2004 23:54:36 +0100
| Newsgroups | php.doc.sv |
|---|---|
| Message-ID | <[email protected]> |
-- Regards _________________________________________ Gustav Tiger Bergs Gymnasium Sweden
basic-syntax.xml
(text/xml, 9.4 KB)
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.36 $ -->
<chapter id="language.basic-syntax">
<title>Grundläggande syntax</title>
<!--
NOTE: Last modified: 2001-05-16 13:00 GMT
the language part is currently under heavy revision. Please do not
not make any heavy (i.e. structural) modifications to this part
for a moment.
You'd also better not start any translation yet.
Comments are always welcome at [email protected]
Progress:
intro : DOESN'T EXIST - yet?
new chapter, with some introductionary remarks?
Will be discussed on the ML soon.
basic-syntax:
FINISHED
except maybe moving the 'advanced escaping'
to a better place?
TODO:
- nada
types : Being revised. Added all new types
Boolean and Integer are more or less finished.
The rest isn't.
TODO:
- why is $foo[bar] bad syntax?
- what's the difference between unset($bla) and
$bla = NULL; (it is different!)
- $obj->{expr} syntax
- (unset) cast?????
- $bla = unset <== should've been nuked, don't mention it
- $str{offset} syntax, rather than $str[offset]
- read notes and apply when any of them are useful
- remove notes which have been included here.
- ...
the rest: Not yet started with.
TODO:
- ?
oop : has been revised by Kristian, DONE.
-->
<sect1 id="language.basic-syntax.phpmode">
<title>Att fly från HTML</title>
<para>
När PHP tolkar en fil så går den helt enkelt igenom filen tills
den påträffar en av de speciella taggar som säger att den ska börja
tolka texten som PHP-kod. Tolken kör all PHP-kod den hittar tills
den hittar en sluttag som berättar för tolken att den ska sluta tolka
PHP-kod och istället börja leta efter nästa starttagg. Det här är den
mekanism som tillåter dig att använda PHP-kod i HTML-kod.
Allting som inte är inom PHP-taggar lämnas medan allting i dem
tolkas som kod.
</para>
<para>
Det finns fyra uppsättningar av taggar som kan användas för märka
ut block med PHP-kod. Av dessa är det bara två (<?php. . .?>
och <script language="php">. . .</script>) som alltid
finns tillgängliga. De andra kan aktiveras och avaktiveras i PHP:s
konfigurationsfil &php.ini. De korta taggarna och ASP-taggarna
kan verka bekväma men de är inte lika portabla som de längre
versionerna. Om du har tänkt dig att använda PHP-kod i XML eller
XHTML så måste du använda <?php. . .?> annars fungerar det
inte tillsammans med XML.
</para>
<para>
Taggarna som PHP stödjer är:
</para>
<para>
<example>
<title>Olika vägar att fly från HTML</title>
<!-- TODO, translation processing instruction = vad?? fly = vad?? -->
<programlisting role="php">
<![CDATA[
1. <?php echo("gör såhär om du vill betjäna XHTML- eller XML-dokument\n"); ?>
2. <? echo ("en processinstruktion ala SGML är den enklaste, \n"); ?>
<?= expression ?> Det här är en genväg till "<? echo expression ?>"
3. <script language="php">
echo ("några editorer (som FrontPage) tycker inte
om processinstruktoner");
</script>
4. <% echo ("Alternativt kan du använda ASP-taggar"); %>
<%= $variable; # Det här är en genväg till "<% echo . . ." %>
]]>
</programlisting>
</example>
</para>
<para>
Det första sättet, <?php. . .?>, är att föredra eftersom
den tillåter att man använder PHP i XML-anpassade kod som XHTML.
</para>
<para>
Det andra sättet är inte alltid tillgängligt. Korta taggar är bara
tillgängliga när de har blivit aktiverade. Det kan göras via
funktionen <function>short_tags</function> (bara i PHP 3), genom
att aktivera inställningen
<link linkend="ini.short-open-tag">short_open_tag</link>
i PHP:s konfigurationsfil eller genom att kompilera PHP med alternativet
--enable-short-tags givet till <command>configure</command>. Även
om de är aktiverade som standard i php.ini-dist så är uppmuntras
<emphasis>inte</emphasis> användandet av korta taggar.
</para>
<para>
Det fjärde sättet är bara tillgängligt om ASP-taggar har
aktiverats genom inställningen <link linkend="ini.asp-tags">asp_tags</link>
i konfigurationsfilen.
<note>
<para>Stöd för ASP-taggar lades till i in 3.0.4.</para>
</note>
</para>
<para>
<note>
<para>
Användandet av korta taggar bör undvikas under utveckling av
applikationer och bibliotek som är tänkt att spridas eller
på PHP-servrar som du inte har kontroll över, eftersom korta taggar
kanske inte stöds av den servern. Se till att inte använda korta
taggar för att få en portabel, spridbar kod.
</para>
</note>
</para>
<para>
<!-- TODO, översättning?? The closing tag for the block will include the immediately
trailing newline if one is present. (Första meningen)
övrigt, lite konstigt här.. ja -->
Sluttaggen för ett block kommer att inkludera det sista
nyradstecknet om det finns ett sådant. Sluttaggen förstår
att det skall vara ett semikolon innan så man behöver inte
ha något semikolon på slutet av den sista raden kod i ett
PHP-block. Sluttagg för PHP-block i slutet av en fil
är också valfritt.
</para>
<para>
PHP låter dig att använda strukturer som den här:
<example><title>Avancerad flykt</title>
<programlisting role="php">
<![CDATA[
<?php
if ($expression) {
?>
<strong>Det här är sant.</strong>
<?php
} else {
?>
<strong>Det här är falskt.</strong>
<?php
}
?>
]]>
</programlisting>
</example>
Det här kommer att fungera som väntat eftersom när tolken stöter på
sluttaggen ?> så börjar den att mata ut all den hittar tills
den stöter på ytterligare en öppningstagg. I det här exemplet är
det inte försvarligt men om man vill mata ut större massor av text är
det ofta mer effektivt att göra på det här sättet än att skriva ut
text genom <function>echo</function>, <function>print</function>
eller liknande.
</para>
</sect1>
<sect1 id="language.basic-syntax.instruction-separation">
<title>Intruktionsseparering</title>
<simpara>
Instruktioner separeras likadant som i C eller Perl - genom
att avsluta satsen med ett semikolon.
</simpara>
<para>
Sluttaggen (?>) förutsätter att satsen slutar där så följande
exempel är likvärdiga:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo "Det här är ett test";
?>
<?php echo "Det här är ett test" ?>
]]>
</programlisting>
</informalexample>
</para>
</sect1>
<sect1 id="language.basic-syntax.comments">
<title>Kommentarer</title>
<para>
PHP stödjer 'C', 'C++' och Unix shell-kommentarer. Till exempel:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo "Det här är ett test"; // Det här är en enradskommentar i c++-stil
/* Det här är en flerradskommentar
ytterligare en rad med kommentarer */
echo "Det här är ytterligare ett test";
echo "Ett sista test"; # Det här är en shelltypskommentar
?>
]]>
</programlisting>
</informalexample>
</para>
<simpara>
"Enradskommentaren" kommenterar egentligen bara till slutet av
raden eller till slutet av PHP-blocket beroende på vilket som
kommer först.
</simpara>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<h1>Det här är ett <?php # echo "enkelt";?> exempel.</h1>
<p>Rubriken ovanför kommer att visa 'Det här är ett exempel'.
]]>
</programlisting>
</informalexample>
</para>
<simpara>
Man ska vara försiktig med att blanda flera C-kommentarer, vilket
kan hända när man kommenterar bort stora kodblock.
</simpara>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
/*
echo "Det här är ett test"; /* Den här kommentaren kommer att orsaka problem */
*/
?>
]]>
</programlisting>
</informalexample>
</para>
<simpara>
Enradskommentarerna kommenterar bara till slutet av raden eller
till slutet av kodblocket beroende på vilken som kommer först.
Det betyder att HTML-koden efter <literal>// ?></literal>
kommer att skrivas ut. ?> hoppar ut ur PHP-läget och återgår
till HTML-läget och <literal>//</literal> kan inte påverka det.
Om <link linkend="ini.asp-tags">asp_tags</link> är aktiverade
så kommer det att hända samma med sak med <literal>// %></literal>.
</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
-->