Tue, 28 Feb 2006 19:55:14 +0100 brugte Mark Thomas Gazel 47 linier på at
fortælle dette til dk.edb.internet.webdesign.serverside.php:
><li <?php if (((is_home()) && !(is_paged())) or (is_archive()) or
>(is_single()) or (is_paged()) or (is_search())) { echo
>"class=\"current_page_item\""; } ?> ><a href="<?php echo
>get_settings('home'); ?>" ><?php _e('Home'); ?></a></li>
Vi prøver lige at knække den ned, så betingelserne er tal - så slipper vi
for de fleste af paranteserne, og så er den nemmere at overskue:
<li <?php if ((1 && !2) or 3 or 4 or 5 or 6) {
Altså, hvis blot en af disse betingelser er sand, så skal det efterfølgende
udføres. Betingelse 1 og 2 er dog lidt for sig selv: (1 && !2) er afhængige
af hinanden, forstået sådan at udtrykket i parantesen kun er sandt, hvis
betingelse 1 er sand, OG (&&) betingelse 2 er falsk (!2).
&& er det samme som AND, || er det samme som OR, og ! betyder IS NOT.
echo "class=\"current_page_item\""; } ?>>
<a href="<?php echo get_settings('home'); ?>" >
<?php _e('Home'); ?></a></li>
>Derefter dukker der gudhjælpemig en style definition op. Det er fint nok og
>jeg forstår hvorfor, men der bruges backclash midt i det hele osv. Det
>virker lidt atypisk. Kan man altid henvise til en style på den måde midt i
>et tag?
Ja, det kan du godt.
echo "class=\"current_page_item\""; } ?>>
Backslashene er der fordi sætningen står i php-kode. Så skal gåseøjnene der
skal med i outputtet escapes, og det gøres med backslash.
<?php echo "Test\""; ?>
Vil give outputtet
Test"
>Jeg prøver bare at forstår kodenstumpen. Det kunne jo være man fik brug for
>det en anden gang.
Ja, det var sådan jeg lærte (og stadig lærer) php - ved at prøve at
gennemskue andres kode...
--
Lars Rander ** Pil ikke ved min adresse ** :(){ :&:& };:
http://rander.dk (temporarily down!)
Jeg så en dame gå over vejen. Jeg tog fejl af hendes hensigter. (Skadesanmeldelse)