Ik krijg deze functie maar niet aan de praat. Wie kan mij helpen?


public function test ($_SESSION['voorbeeld']) {
if ($_SESSION['voorbeeld'] === "1") return true;
if ($_SESSION['voorbeeld'] > "1") return false;
} 
Is 1 hier ook daadwerkelijk een string of is het een getal?

Met === "1" vergelijk je een string.
Is het een getal gebruik dan geen quotes.
Dank je. Het gaat inderdaad om een getal. Ik krijg nu alleen een andere error.
Dus gaat de juiste kant op lijkt mij.

PHP Parse error: syntax error, unexpected '[', expecting ')'


public function test ($_SESSION['voorbeeld']) {
if ($_SESSION['voorbeeld'] === 1) return true;
if ($_SESSION['voorbeeld'] > 1) return false;
}
Waarom een SESSION-global in je functie tussen de haakjes gebruiken?

<?php
class iets {

  public function test() {
  if ($_SESSION['voorbeeld'] === 1) return true;
  if ($_SESSION['voorbeeld'] > 1) return   false;
  }
}
?>
Haal de spatie eens weg tussen test en (

public function test ($_SESSION['voorbeeld']) {

$_SESSION['voorbeeld'] hoort daar helemaal niet te staan.


public function test () {
Klopt, mijn code (fictieve class, dat weer wel) zou moeten werken.
Wat verwacht je voor resultaat wanneer "voorbeeld" de waarde nul of lager heeft ?
Volgens mij kom je dan in een ongedefinieerde status.

Gebruik een IF-THEN-ELSE om alle opties te ondervangen.
En wat gebeurt er als $_SESSION['voorbeeld'] kleiner dan 1 is, of $_SESSION['voorbeeld'] niet bestaat doordat de sessie-variabele niet bestaat of dat de sessie (nog) niet is gestart?

Verder heb ik dit nooit begrepen:
<?php
if (whatever) {
    return true;
} else {
    // dit is overigens niet wat hierboven gebeurt (niet in alle gevallen wordt false geretourneerd)
  return false;
}
?>

Waarom dan niet simpelweg:
<?php
return whatever;
?>

"whatever" was blijkbaar al een "boolean statement", waarom zou je deze expliciet met "true" willen vergelijken.
Bedankt allen voor jullie juiste advies!

Reageren