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 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) 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] 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 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 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 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 Link to comment https://forums.phpfreaks.com/topic/159999-uninitialized-string-offset/#findComment-844048 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.