Rodxxx Posted June 10, 2008 Share Posted June 10, 2008 soo my grand idea was using a function for setting/getting/unsetting vars to a session (though that function thingy shouldn't affect the issue itself let's go for simple example like this > function example($key1, $key2) { unset($_SESSION[$key1][$key2]); } and just for example creating a function call like example("strawberry", "cake"); the call itself isnt really required as the interpreter doesnt care for it anyway there are a few things to note: $_SESSION is a superglobal ARRAY and unset is an array function too! what actually happens is .. PHP5 tries to render $_SESSION as a string and thus creating the fatal error "Cannot unset string offsets" note that .. even with defining $key1 and $key2 via casting or settype to string .. and $_SESSION to array .. this doesnt help at all as it's silently ignored i've yet to find a solution on how to explain PHP that this var is NOT a string and was never used as such and will never be used as such .. maybe i am just ignoring a simple error in this syntax as code like that worked fine for PHP4 and would work without such sideeffects if the PHPdevs would just stick to use {} operators for strings instead of trying to force in [] operators which do exactly the same and thus creating this issue in the first place any help in this issue would be appreciated as i am kind of at a loss here Quote Link to comment https://forums.phpfreaks.com/topic/109496-another-php5-array-string-offset-isse/ Share on other sites More sharing options...
hansford Posted June 10, 2008 Share Posted June 10, 2008 I don't have that problem with php 5.2.5. This script gives me no errors. <?php $key1 = 'name'; $key2 = 'first'; $_SESSION['name']['first'] = 'frank'; example($key1,$key2); function example($key1,$key2){ echo $_SESSION[$key1][$key2]; unset($_SESSION[$key1][$key2]); } ?> Quote Link to comment https://forums.phpfreaks.com/topic/109496-another-php5-array-string-offset-isse/#findComment-561682 Share on other sites More sharing options...
kenrbnsn Posted June 10, 2008 Share Posted June 10, 2008 Can we see the function in a real script that gives you the error? At some point you may have done something like <?php $_SESSION = 'a string'; ?> which made the $_SESSION variable into a sting instead of an array., Ken Quote Link to comment https://forums.phpfreaks.com/topic/109496-another-php5-array-string-offset-isse/#findComment-561694 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.