louis_coetzee Posted May 28, 2009 Share Posted May 28, 2009 function encrypt($value) { $result = ''; for ($i = 1; $i <= strlen($value); $i++){ $val2 = $result; [color=red]line 315[/color] switch (ord($value[$i])){ case 0 : $result = $val2.'[NULL]'; break I get: Notice: Uninitialized string offset: 5 in C:\wamp\www\aacomplienz\f\functions.php on line 315 Quote Link to comment https://forums.phpfreaks.com/topic/159999-uninitialized-string-offset/ Share on other sites More sharing options...
MadTechie Posted May 28, 2009 Share Posted May 28, 2009 Arrays start from 0 so your attempting to get one extra charactor from $value change strlen($value) to (strlen($value)-1) Quote Link to comment https://forums.phpfreaks.com/topic/159999-uninitialized-string-offset/#findComment-844002 Share on other sites More sharing options...
JonnoTheDev Posted May 28, 2009 Share Posted May 28, 2009 Because you are treating a string as an array ($value) if $value is a string i.e $value = "foobar"; I cannot use the following $value[1] Quote Link to comment https://forums.phpfreaks.com/topic/159999-uninitialized-string-offset/#findComment-844008 Share on other sites More sharing options...
MadTechie Posted May 28, 2009 Share Posted May 28, 2009 if $value is a string i.e $value = "foobar"; I cannot use the following $value[1] Of course you can, it will get the x charactor Quote Link to comment https://forums.phpfreaks.com/topic/159999-uninitialized-string-offset/#findComment-844023 Share on other sites More sharing options...
JonnoTheDev Posted May 28, 2009 Share Posted May 28, 2009 Of course you can, it will get the x charactor Ah yes didn't realize as never used a string in that fashion. Unsure whether that is bad practice as it is a way of accessing array values from a key. If it was my code I would have split the string $value = str_split("foobar"); $letter = $value[$i]; Something new every day, eh Quote Link to comment https://forums.phpfreaks.com/topic/159999-uninitialized-string-offset/#findComment-844029 Share on other sites More sharing options...
MadTechie Posted May 28, 2009 Share Posted May 28, 2009 You could also do this $value = "foobar"; $value{3}; // returns b But PHP6 decided on a standard so $value{3} will not work on PHP6 but $value[3] will be fine Quote Link to comment https://forums.phpfreaks.com/topic/159999-uninitialized-string-offset/#findComment-844036 Share on other sites More sharing options...
JonnoTheDev Posted May 28, 2009 Share Posted May 28, 2009 Interesting Quote Link to comment https://forums.phpfreaks.com/topic/159999-uninitialized-string-offset/#findComment-844048 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.