phpbar.de logo

Mailinglisten-Archive

[php] 2 Zeichen auslesen und diesen String umdrehen

[php] 2 Zeichen auslesen und diesen String umdrehen

Andreas Braukmann braukmann_(at)_tse-online.de
Fri, 10 Mar 2000 01:19:47 +0100


Hallo,

On Thu, Mar 09, 2000 at 09:47:47PM +0100, Markus Dobel wrote:
> > > genau wie solch haessliche sachen wie $a = (bedingung?blubb:suelz);

> mag sein, dass es kurz ist und vielleicht sogar schneller ablaeuft als
> folgender konstrukt:
> 
> if (bedingung) { 
>   $a = blubb;
> } 
> else {
>   $a = suelz;
> }
 
> dennoch find ich das lesbarer und logischer. aber das mag
> geschmackssache sein und haengt mit sicherheit auch von der komplexitaet
> des if-konstrukts ab.
eben. Der Fragezeichen-Operator ist nicht einfach ein 'kryptischer'
Ersatz fuer einen if-then-else-Block, sondern hat den unbestreitbaren
Vorteil, dass er eine 'Expression' ist, einen Wert als Ergebnis liefert
und daher als Sub-Expression eines groesseren Ausdrucks verwendet
werden kann.
Das kann in vielen Faellen zu kompakterem, uebersichtlicherem Code
fuehren; .. und zwar insbesondere in solch trivialen Faellen, die
Du oben als Beispiel angefuehrt hast.
Ein typischer Anwendungsfall fuer ( cond ) ? exp1 : exp2 ; 
sind Dinge dieser Art:
    $form->add_element( array(
        "name" => "beispiel",
        "type" => "input",
        "size" => "10",
        "value" => ( isset( $varxy ) ? ( $varxy ) : ( "default" ) ) ) );

Die Alternative mittels 'if' saehe dann so aus:

    if ( isset( $varxy ) ){
        $tmp = $varxy;
    } else {
        $tmp = "default";
    }
    $form->add_element( array(
        "name" => "beispiel",
        "type" => "input",
        "size" => "10",
        "value" => $tmp ) );

Das ganze jetzt 'mal 10 oder 15 Formular-Elemeneten' ... welche
Loesung bleibt uebersichtlicher?
Der '?'-Operator ist natuerlich nicht dazu da, um nach belieben
missbraucht zu werden.


> is auch nich so wichtig, eigentlich gings ja darum, wieso der string ein
> array ist. 
... in 'fast' allen Programmiersprachen (die mir bisher untergekommen
sind) sind die einzelnen Zeichen einer Zeichenkette (auf die eine
oder andere Weise) adressierbar. PHP folgt hier einer langen Tradition
vieler Sprachen und bildet Zeichenketten auch als 'Arrays of character'
ab (wie auch Pascal, Modula-2 und -3, C, C++, etc. etc.). 
Das ist jawohl sinnvoll und nuetzlich und hat mit 'dirty, rotten
C-trick' nix zu tun. (Wenn das in Deinen Augen schon 'dirty' ist, ...
was sagst Du erstmal zur Pointer-Arithmetik ... ;) )

-andreas

-- 
: Anti-Spam Petition:     http://www.politik-digital.de/spam/          :
: PGP-Key:                http://www.tse-online.de/~ab/public-key      :
: Key fingerprint:  12 13 EF BC 22 DD F4 B6  3C 25 C9 06 DC D3 45 9B   :


php::bar PHP Wiki   -   Listenarchive