Is mijn code bijna goed?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Rene janssen

rene janssen

22/10/2014 23:33:57
Quote Anchor link
Ik worstel hier nu al een paar dagen mee.
En ik weet eigenlijk niet of ik nu helemaal fout zit of dat het een klein dingetje is dat fout is.
Graag tips, maar geen oplossingen :)
Bij drie de zelfde plaatjes moet de tekst jackpot verschijnen.
Else 'nog een keer';

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
$fruitkast
= array(1 => "http://i332052.iris.fhict.nl/sinas.jpg", 2 => "http://i332052.iris.fhict.nl/appel1.jpg", 3 => "http://i332052.iris.fhict.nl/kers1.jpg");

$willekeurig1 = mt_rand (1,3);
$willekeurig2 = mt_rand (1,3);
$willekeurig3 = mt_rand (1,3);

$fruit1 = $fruitkast[$willekeurig1];
$fruit2 = $fruitkast[$willekeurig2];
$fruit3 = $fruitkast[$willekeurig3];

$a = '<img src="'.$fruit1.'">';
$b = '<img src="'.$fruit2.'">';
$c = '<img src="'.$fruit3.'">';

$totaal = $a.''.$b.''.$c;

echo $totaal;

if ($totaal === true) {
echo 'jackpot';
}

else (
echo 'nog een keer';
)


?>
 
PHP hulp

PHP hulp

23/12/2024 06:19:18
 
Patrick Bergman

Patrick Bergman

22/10/2014 23:48:40
Quote Anchor link
Hoi rene,

Je code ziet er in eerste instantie goed uit, alleen regel 20 vind ik apart.
Je vergelijkt namelijk een string ($totaal) met een boolean.
DIt doe je met behulp van '===' wat betekent 'is identiek aan'. Wat in jou code nooit zal gebeuren aangezien een string zeker geen boolean is.

Misschien is een betere oplossing:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if ($a === $b && $a === $c) {
    echo 'jackpot';
}
else {
    echo 'nog een keer';
}

?>
Gewijzigd op 22/10/2014 23:51:07 door Patrick Bergman
 
Rene janssen

rene janssen

23/10/2014 00:00:54
Quote Anchor link
dat was eigenlijk mijn vraag
hoe kan ik die $a $b $c vergelijken.
ik weet wel hoe ik $a en $b moet vergelijken maar die derde $c
hoe kun je drie of meerdere strings vergelijken met if?
 
Patrick Bergman

Patrick Bergman

23/10/2014 00:04:47
Quote Anchor link
Hoi Rene,

zie de code in mijn voorbeeld. Eigenlijk vrij simpel
Eerst wordt er gekeken of a en b aan elkaar gelijk zijn, waarna gekeken wordt of a en c aan elkaar gelijk zijn

Als a == b en a == c dan is b == c.

wat er in mijn voorbeeld staat is:
als a gelijk is aan b EN a gelijk is aan c
dan jackpot
anders nog een keer
 
Rene janssen

rene janssen

23/10/2014 00:20:29
Quote Anchor link
Bedankt voor de tip patrick,
ik was al bij geweest $a == $b&& $c alleen die tweede == had ik nog niet door.

tevens dacht ik dat $totaal === misschien de totaale code ging vergelijken en dus dan op een true of false uit zou komen.

maar het werkt wel idd ;)
 
Wouter J

Wouter J

23/10/2014 00:40:40
Quote Anchor link
Het eerste wat opvalt is dat je een groot gedeelte 3 keer uitvoert. Dit kun je dus vervangen met een for loop.

Ook zou ik gewoon met een lijst werken (array zonder expliciete keys). Dat de keys bij 0 beginnen is meer iets wat je jezelf moet aanleren, want je kan er echt niet altijd op deze manier omheen werken (pas dan wel de rand range aan tot 0 tot 2).

Ook zou ik regels 4-6 en 8-10 en 12-14 samenvoegen tot 1 regel. Dat kan makkelijk en bespaard je een hoop geheugen gebruikt (variabelen zijn een van de zwakke plekken in PHP).

Als laatste raad ik je aan je code makkelijk te indenten. Een algemene conventie is om na een { met 1 tab of 4 spaties in te springen. Dit houdt je code, vooral wanneer je straks structures gaat mengen, overzichtelijk.
 
Peter K

Peter K

23/10/2014 07:30:29
Quote Anchor link
Mooi om te zien dat je 'fruitkast' het zo goed als doet.

Echter vraag ik me af, wil je niet alleen bij een bepaalde score de jackpot alleen uitgekeerd wordt? Nu keer je de jackpot uit als je 3 dezelfde plaatje hebt.

Wat je nu dus aangeeft is:
3x sinas = prijs
3x appel = prijs
3x kers = prijs


Wellicht kun je dus net zo goed vergelijken met waarvan jij vindt dat er een jackpot is, en wellicht (ter uitbreiding) kun je halve prijzen gaan uitkeren.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
    // Prijzen bepalen
    switch ($totaal)
    {

        // 3x sinas
        case 111:
            echo "hoofdprijs sinas";
        break;

        // 3x appel
        case 222:
            echo "hoofdprijs appel";
        break;
        
        default:

            echo "geen prijs";
        break;
    }

?>


En inderdaad zoals wouter aangeeft kun je nu met behulp van een loop en alles in 1 regel plakken gelijk de link van het plaatje aanmaken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
    // Loop begin bij 1 <= 3
    for($index = 1; $index <= 3; $index++)
    {

        $willekeurig[$index] = "";
    }

?>


Let wel op, bouw eerst je loop in! Daarna pas code gaan samenvoegen...
 
Rene janssen

rene janssen

23/10/2014 08:14:39
Quote Anchor link
Dat het een beetje omslagtig is weet ik,
het was even voor mijn eigen duidelijkheid en kijken of het wel kon.

Met die forloop...
dat gaat me nog een beetje snel maar ik doe mijn best... :)
 
Peter K

Peter K

23/10/2014 08:31:11
Quote Anchor link
Overal waar je nu handmatig een 1, 2 of 3 bij zet die haal je weg en vervang je door [$index] binnen de loop.

de loop doet dit:

$willekeurig[1]
$willekeurig[2]
$willekeurig[x]

x is dan het $index getal.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.