Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Korter script

None
13 antwoorden
  • Kan dit onderstaande script ook korter gescript worden?
    [code:1:a944cb365e]if (isset($newstitel[0])) {
    echo "<b>$newstitel[0]</b> <br>(<i>op $newsdate[0]</i>)<br>";
    echo "$newsmess[0]<br><br>";
    }

    if (isset($newstitel[1])) {
    echo "<b>$newstitel[1]</b> <br>(<i>op $newsdate[1]</i>)<br>";
    echo "$newsmess[1]";
    }

    if (isset($newstitel[2])) {
    echo "<b>$newstitel[2]</b> <br>(<i>op $newsdate[2]</i>)<br>";
    echo "$newsmess[2]";
    }[/code:1:a944cb365e]
    En dan moet het 10x.

    de gegevens komen uit een array.

    P.S. Ik ben nog maar een beginner. :roll: :roll:
  • Lees dit eens : http://www.tizag.com/phpT/forloop.php
  • Ik snap nog niet geheel hoe ik dat dan moet scripten.
    Ik heb het nu als volgt gedaan:
    [code:1:01128b13b5]
    for (;$newstitel < 10 && $newsdate < 10 && $newsmess < 10; $newstitel++ && $newsdate++ && $newsmess++) {
    echo "<b>$newstitel</b> <br>(<i>op $newsdate</i>)<br>";
    echo "$newsmess<br><br>";
    }
    [/code:1:01128b13b5]Maar dat werkt niet.

    Kunnen jullie mij gaarne nog iets verder op weg helpen??
  • Niet getest maar zoiets zou het moeten worden:

    [code:1:a9dac1a7eb]
    for ( $counter = 0; $counter <= 9; $counter += 1) {
    if (isset($newstitel[$counter])) {
    echo "<b>$newstitel[$counter]</b> <br>(<i>op $newsdate[$counter]</i>)<br>";
    echo "$newsmess[$counter]<br><br>";
    }
    }
    [/code:1:a9dac1a7eb]
  • Mijn dank is groot, ja schier verpletterend.

    Nu weet ik gelijk wat het nut is van lussen, dat snapte ik namelijk niet.

    :wink: :wink: :wink:
  • Graag gedaan, succes verder!
  • Nog korter is om $counter += 1 te vervangen door $counter++

    Tis maar net wat je wilt :)
  • als je dan toch gaat mierenne*ken doe het dan meteen goed. :wink:

    $counter <= 9

    ->

    $counter < 10

    Scheelt je in elke lus een extra vergelijking. :wink:
  • En nog korter:

    while ($counter++ < 10) { … }

    En zo kun je doorgaan, tot het totaal onleesbaar wordt. ;)
  • haha
    en als-ie nou moet doorlopen totdat er eentje niet meer isset is ( :-? )

    while ( isset($newstitel[$counter++])) {
    echo "";
    }

    (wel eerst ff de counter op 0 zetten (of -1 ?) )
  • Dit gaat helaas de mist in, als bijvoorbeeld nummer 2 niet, en opvolgende nummers wel bestaan.

    Trouwens, is dat hele isset wel nodig? Kun je niet gewoon een foreach doen? Kan wel problemen geven, als een vaste volgorde gewenst is.

    foreach($newstitel as $var) { … }

    http://www.phpfreaks.com/phpmanual/page/control-structures.foreach.html
    http://nl3.php.net/foreach

    Edit: syntax gecorrigeerd, links toegevoegd.
  • [quote:81a2495c84="gerben"]Dit gaat helaas de mist in, als bijvoorbeeld nummer 2 niet, en opvolgende nummers wel bestaan.
    [/quote:81a2495c84]

    ja, maar dat staat ook in mn zinnetje ervoor, als dat nou juist t geval is (kan logisch zijn in sommige situaties…)
  • Ik zou persoonlijk kiezen voor een foreach geloof ik.
    Dan weet je inderdaad zeker dat er geen onzinnige dinge uit die lus lopen.
    Bovendien is foreach ook iets sneller dan allerlei if-statements als ik het goed onthouden heb. Codetechnisch is het ook nog iets netter.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.