login  Naam:   Wachtwoord: 
Registreer je!
 Forum

functie echoen binnen if-clause

Offline bennieboy - 04/09/2006 22:01
Avatar van bennieboyHTML beginner Ik heb een functie die ingelogd heet. Ik heb dit zo gedaan:

[code]
<?
if(echo ingelogd()) {
?>

is dit mogelijk

6 antwoorden

Gesponsorde links
Offline WimJ - 04/09/2006 22:03
Avatar van WimJ Grafische gevorderde ik zou denken van wel ?
Is er mischien een probleem opgetreden ?
Offline dotPixel - 04/09/2006 22:12 (laatste wijziging 04/09/2006 22:15)
Avatar van dotPixel PHP interesse Laat de functie ingelogd gewoon een boolean terug retourneren.
TRUE bij als je bent ingelogd en FALSE als je niet bent ingelogd.
  1. <?php
  2. if (hasAccess() === TRUE) {
  3. // is ingelogd, heeft toegang
  4. } else {
  5. // geen toegang
  6. }
  7. ?>


Echo kan niet in een if, print daarentegen wel. Die retourneert immers een int met of het weergeven is geslaagd. Niet dat het efficiënt/nuttig is dat te doen, maargoed.
Offline marten - 04/09/2006 22:14
Avatar van marten Beheerder is niet mogelijk volgens mij
je wilt controleren of die functie gelukt is?

dan --->

  1. <?php
  2. if(ingelogd()) {
  3. echo 'gelukt';
  4. }
  5. ?>
Offline bennieboy - 04/09/2006 22:22
Avatar van bennieboy HTML beginner neen, marten! Dat werkt ook niet:s
Offline Ultimatum - 04/09/2006 22:30 (laatste wijziging 04/09/2006 22:31)
Avatar van Ultimatum PHP expert je moet in je functie ook wel true en false hebben staan, dus

  1. <?php
  2. function ingelogd()
  3. {
  4. if($var1 != $var2)
  5. {
  6. return false;
  7. }
  8. else
  9. {
  10. return true;
  11. }
  12. }
  13. ?>
  14.  
  15. <?php
  16. if(ingelogd() === TRUE)
  17. {
  18. //goed
  19. }
  20. else
  21. {
  22. //fout
  23. }
  24. ?>


het kan al dat je zoiets hebt maar dat kan ik (helaas) niet ruiken 
Offline ProximuZ - 05/09/2006 01:05
Avatar van ProximuZ Onbekend Het soort vergelijkingen zoals Ultimatum ze hier maakt kunnen korter (en overzichtelijker) geschreven worden. Verder adviseer ik je om gebruik te maken van indenting.
  1. <?php
  2.  
  3. function vergelijkWaarden($sWaarde, $sVergelijk) {
  4. return ($sWaarde == $sVergelijk);
  5. }


Door gebruik van nesting van een alternatieve if-else structuur kan je redelijk overzichtelijk returnen.
  1. <?php
  2.  
  3. function vergelijkWaarden($sWaarde, $sVergelijk, $bCaseSensitive = true) {
  4. return ($bCaseSensitive === true && strtoupper($sWaarde) == strtoupper($sVergelijk)
  5. ? true
  6. : ($sWaarde == $sVergelijk
  7. ? true
  8. : false));
  9.  
  10. }


Mensen die dit niet fijn werken vinden kunnen natuurlijk altijd gewoon terugvallen op de manier zoals hierboven ook al staat.
  1. <?php
  2.  
  3. function vergelijkWaarden($sWaarde, $sVergelijk, $bCaseSensitive = true) {
  4.  
  5. if ($bCaseSensitive && strotoupper($sWaarde) == strtoUpper($sVergelijk)) {
  6. return true;
  7. } else if ($sWaarde == $sVergelijk) {
  8. return true;
  9. }
  10.  
  11. return false;
  12.  
  13. }


Normaal zou je bij dit voorbeeld zeggen dat je uiteindelijk uit het if-statement komt en dus na een eventuele true een false ook returned wordt. Dit is echter niet het geval omdat php maar 1 keer toelaat dat je een value returned uit een functie (bij een eenmalige aanroep natuurlijk).
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.233s