Versio

Ternaire conditionele operator

Overzicht Reageren

Kasper Isgek

Kasper Isgek

22/03/2006 22:14:00
Quote Anchor link
Ik heb even wat uitgeprobeerd met een conditionele operator, de $eerste ? $tweede : $derde.

Ik heb hem nu zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$string
= strlen($arr['string'] >= 30) ? substr($arr['string'], 0, 27) . '...' : $arr['string'];
?>


Het is de bedoeling dat wanneer een string langer is dan 30 tekens de string wordt afgebroken op 27 karakters en door middel van drie puntjes wordt afgesloten. Is de string korter dan 30 tekens, dan kan de string zijn gewone lengte behouden en worden geen puntjes toegevoegd.

Ik weet dat het anders kan, maar het leek me zinvol eens iets anders te proberen :)

Edit:
Nu gebeurt er overigens helemaal niets, ook niet wanneer de string langer is dan 30 tekens. Draai ik het 'groter dan of gelijk aan'-teken om, dan komt achter iedere string een toevoeging van 3 puntjes.
Gewijzigd op 22/03/2006 22:16:00 door Kasper Isgek
 
PHP hulp

PHP hulp

25/05/2012 16:15:46
Gesponsorde koppelingen:
 
Leen Strijk

Leen Strijk

22/03/2006 22:33:00
Quote Anchor link
Volgens mij gebruik je de conditionele statement niet helemaal goed.

Hier zo als ik het geleerd heb:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?
if ($string>=30)
{

$lengte=true;
}

else
{
$lengte=false;
}

echo ($lengte ? "de lengte is groter of gelijk aan" : "de lengte is kleiner dan")
?>

Kan je daar wat mee?
Gewijzigd op 22/03/2006 22:34:00 door Leen Strijk
 
Kasper Isgek

Kasper Isgek

22/03/2006 22:39:00
Quote Anchor link
Volgens mij zou mijn manier ook moeten kunnen, althans op soortgelijke wijze (want nu werkt hij niet, dat moge duidelijk zijn).

Mijn manier zou zeg maar jouw stuk moeten zijn, maar dan op één regel en toegewezen aan een variabele.
 
Leen Strijk

Leen Strijk

22/03/2006 22:41:00
Quote Anchor link
Zet de hele regel eens tussen haakjes dan.

En is het resultaat van $lengte boolean?
 
Klaasjan Boven

Klaasjan Boven

22/03/2006 22:42:00
Quote Anchor link
waarom op een regel als ik vragen mag?
 

22/03/2006 22:42:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$string
= (strlen($arr['string']) >= 30) ? substr($arr['string'], 0, 27) . '...' : $arr['string'];
?>

Werkt wel ;-)
 
Kasper Isgek

Kasper Isgek

22/03/2006 22:44:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$string
= (strlen($arr['string'] >= 30) ? substr($arr['string'], 0, 27) . '...' : $arr['string']);
?>


Had ik geprobeerd, zonder resultaat. Het lijkt erop dat de expressie nu altijd false is, omdat er nooit puntjes achter komen. Draai je de >= operator om, dan is de expressie altijd true.
 
Kasper Isgek

Kasper Isgek

22/03/2006 22:46:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$string
= (strlen($arr['string']) >= 30) ? substr($arr['string'], 0, 27) . '...' : $arr['string'];
?>


Klopt! Ik had een haakje verkeerd geplaatst maar nu werkt hij prima zo te zien. Thx! :)

Edit:
bugje: code quoten kan niet zo te zien...
Gewijzigd op 22/03/2006 22:47:00 door Kasper Isgek
 

22/03/2006 22:47:00
Quote Anchor link
Kasper, let op het verschil ;-) :
//de mijne
(strlen($arr['string']) >= 30)
//de jouwe
strlen($arr['string'] >= 30)
Gewijzigd op 22/03/2006 22:51:00 door
 
Kasper Isgek

Kasper Isgek

22/03/2006 22:53:00
Quote Anchor link
Ik zag het al inderdaad :)
 



Overzicht Reageren