Ternary Operator probleem.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Matciano van Wijk

Matciano van Wijk

15/02/2012 10:38:33
Quote Anchor link
Op het moment heb ik dit.
Alleen weergeeft hij niet de tekst die weergeven moet worden, maar inplaats daarvan helemaal niks?

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
<?php
$gewerkteuren
= 41;
$uurtarief = 15.00;
$bruto = $gewerkteuren * $uurtarief;
$salaris = ($bruto + $bonus);
if($salaris > 700 ? "U kunt maximaal 100 euro's sparen." : "U kunt maximaal 50 euro's sparen.");
if($gewerkteuren > 40)
{

    $bonus = 90.00;
    echo("Uw salaris met bonus is: " . "&euro;" . ($bruto+$bonus));
}

else
{
    echo("Uw salaris is: " . "&euro;" . $bruto);
}

?>
 
PHP hulp

PHP hulp

08/05/2024 23:15:37
 
Erwin H

Erwin H

15/02/2012 10:44:52
Quote Anchor link
1. Zet de vergelijking eens tussen haakjes
2. Een ternary is een vervanging van een if statement, dus die if heb je niet nodig
3. je moet de uitkomst ervan wel ergens aan toekennen (of direct printen)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo ($salaris > 700) ? "U kunt maximaal 100 euro's sparen." : "U kunt maximaal 50 euro's sparen.";
?>
 
Matciano van Wijk

Matciano van Wijk

15/02/2012 11:05:46
Quote Anchor link
Dankjewel Erwin.

Heb nu nog een probleempje, ik moet namelijk in de tabel weergeven of het in of uit voorraad is met de ternary operator. Alleen weergeeft hij nu nog steeds 0.

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
$toshiba
["merk"] = " Toshiba Sattelite ";
$toshiba["model"] = " A100 ";
$toshiba["os"] = " Windows XP ";
$toshiba["voorraad"] = 80;
(
$toshiba["voorraad"] > 0) ? "In voorraad" : "Uit voorraad";
$toshiba["prijs"] = 999;
$acer["merk"] = " Acer Aspire ";
$acer["model"] = " 5732Z ";
$acer["os"] = " Linux ";
$acer["voorraad"] = 0;
$acer["prijs"] = 888;
$hp["merk"] = " HP ";
$hp["model"] = " 200X ";
$hp["os"] = " Vista ";
$hp["voorraad"] = 50;
$hp["prijs"] = 777;
$totaal = $toshiba["prijs"] + $acer["prijs"] + $hp["prijs"];
echo("<table border='1'> " .
"<caption>
<strong>SML Laptops</strong>
</caption>
<thead>
<tr><th>Merk</th><th>Model</th><th>Operating System</th><th>Voorraad</th><th>Prijs</th></tr>
</thead>
<tbody>
<tr>
<td>"
. $toshiba["merk"] . "</td>" .
"<td>" . $toshiba["model"] . "</td>" .
"<td>" . $toshiba["os"] . "</td>" .
"<td>" . $toshiba["voorraad"] . "</td>" .
"<td>" . $toshiba["prijs"] . "</td>" .
"<tr>
<td>"
. $acer["merk"] . "</td>" .
"<td>" . $acer["model"] . "</td>" .
"<td>" . $acer["os"] . "</td>" .
"<td>" . $acer["voorraad"] . "</td>" .
"<td>" . $acer["prijs"] . "</td>" .
"<tr>
<td>"
. $hp["merk"] . "</td>" .
"<td>" . $hp["model"] . "</td>" .
"<td>" . $hp["os"] . "</td>" .
"<td>" . $hp["voorraad"] . "</td>" .
"<td>" . $hp["prijs"] . "</td>" .
"<tr>
<tfoot>
<tr><td colspan='4'>Totaal</td><td>"
. $totaal . "</td></tr></tfoot></table>");
?>
 
Erwin H

Erwin H

15/02/2012 11:07:37
Quote Anchor link
Kijk naar opmerking 3 in mijn vorige post, dat is het antwoord.
 
Matciano van Wijk

Matciano van Wijk

15/02/2012 11:08:54
Quote Anchor link
Dus ik zal hem moeten echoen waar ik $toshiba["merk"] laat zien?
 
Erwin H

Erwin H

15/02/2012 11:23:02
Quote Anchor link
Mezelf quotend:
Quote:
3. je moet de uitkomst ervan wel ergens aan toekennen (of direct printen)

Je kan het dus direct printen, maar ook gewoon aan een variabele toekennen en die later weer ergens voor gebruiken. Dus bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$blabla
= ($toshiba["voorraad"] > 0) ? "In voorraad" : "Uit voorraad";
?>
 
Kris Peeters

Kris Peeters

15/02/2012 11:28:40
Quote Anchor link
(Edit: het is zoals Erwin zegt)
Dus ...

De ternary operator is een kortere versie van een if/then/else.
Dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if ($salaris > 700) {
  echo "U kunt maximaal 100 euro's sparen.";
}

else {
  echo "U kunt maximaal 50 euro's sparen.";
}

?>

kan je schrijven als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
  echo ($salaris > 700 ? "U kunt maximaal 100 euro's sparen." : "U kunt maximaal 50 euro's sparen.");
?>


De ternary operator is speciaal handig om te gebruiken binnen strings.
De operator geeft iets terug, in dit geval aan de echo.
Maar die ternary operator zal zelf die echo niet uitvoeren.

Wat in jouw geval handig zou zijn, is dat je dit doet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "U kunt maximaal ". ( $salaris > 700 ? "100" : "50") ." euro's sparen.";
?>


Alles wat gemeenschappelijk is, zwier je buiten de ternary operator
 



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.