Re: Strange string stuff -- maybe everything is ending...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/21/2012 7:59 PM, Nathan Nobbe wrote:
On Fri, Dec 21, 2012 at 4:10 PM, Nathan Nobbe <quickshiftin@xxxxxxxxx>wrote:



On Fri, Dec 21, 2012 at 3:27 PM, Jim Giner <jim.giner@xxxxxxxxxxxxxxxxxx>wrote:

On 12/21/2012 5:16 PM, Tedd Sperling wrote:

On Dec 21, 2012, at 4:58 PM, Jim Giner <jim.giner@xxxxxxxxxxxxxxxxxx>
wrote:


  Never realized that you could address a string as an array of chars,
which you are doing.  Could that be the issue?  Or did I learn something
new?  Or should you have used substr to remove that last char?


Jim:

I guess you learned something new -- that's good.

A string is just a "string" of chars.

As such, if you define:

$a = "tedd";

then:

$a[0] is 't';
$a[1] is 'e'
$a[2] is 'd'
$a[3] is 'd'

The only confusing thing here is the length of the string -- in this
case the length of this string is four, but $a[4] has not been defined.

Cheers,

tedd

_____________________
tedd@xxxxxxxxxxxx
http://sperling.com



  From what I do know, there shouldn't be an a[4].
In any case, let's assume that there is a bug in the string logic that
you're using.  Why not just use substr?

$topic = substr($topic,0,-1);



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Neat idea Tedd, but judging by a quick test, I don't think changing the
value of the string is entirely supported though that notation.

php > $str = 'blah';
php > $str[3] = '';
php > echo $str . PHP_EOL;
bla
php > echo strlen($str);
4


Another interesting twist along the same lines, seems the string offsets
are indeed read only:

php > unset($str[3]);

Fatal error: Cannot unset string offsets in php shell code on line 1

Call Stack:
  6665.6475     384568   1. {main}() php shell code:0

-nathan

That actually makes sense tho. Afterall, a string is truly only one memory allocation whereas array elements are basically multiple vars having the same name. So - how can you unset one char in a string?

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux