Iemand een idee waarom unset niet altijd werkt?

WEL:
$a=1;
while ($a <= 196):
unset($_SESSION["WKD[$a]"]);
unset($_SESSION["RCN[$a]"]);
$a++;
endwhile;


NIET:
$a=1;
while ($a <= 196):
unset($_SESSION['WKD[$a]']);
unset($_SESSION['RCN[$a]']);
$a++;
endwhile;
je moet je vars buiten quotes houden
Bedankt Vincent,
Ik vermoedde al zoiets...

Een gepaste foutmelding zou dan wel op z'n plaats zijn... Is dat dan een PHP eigenschap of setting om het te negeren?
Een @ ervoor, maar het is veel netter om met isset() te kijken of een variabele bestaat.
-Aar- Ik unset ze omdat ze bestaan. Dan hoef ik toch niet isset() te gebruiken om zeker te weten dat ze bestaan en vervolgens te unsetten?
En waar moet die @ voor staan?
Als je error_reporting(E_ALL) aanzet dan zal je zien dat de tweede loop errors/notices geeft. Gegevens/vars tussen enkele quotes worden niet omgezet naar hun inhoud.
OK en wat is dan de bedoeling van die optie in PHP?
Serge Girard op 18/07/2011 16:03:12

OK en wat is dan de bedoeling van die optie in PHP?


Welke optie?
Het gebruik van enkle quotes. In de meeste programmeertalen is er geen wezenlijk verschil. Hier blijkbaar dus wel? SanThe, weet je misschien ook wat Aar bedoelt met die @ ervoor?
Die @ moet je nooit gebruiken, tenzij je straks je haren uit je hoofd wilt trekken als je script niet meer werkt.
Met een @ onderdruk je errors. Dus niet gebruiken.
<?php
$var = 'bla';
// de enige juiste manier is
echo $var; // geeft bla
// nooit quotes om een $var zetten
// ook al werkt het soms wel
echo "$var"; // geeft bla
echo '$var'; // geeft $var
?>

Reageren