Re: string vs number

From: Date: Tue, 05 Feb 2008 21:37:06 +0000
Subject: Re: string vs number
References: 1 2 3 4  Groups: php.general 
Request: Send a blank email to php-general+get-268744@lists.php.net to get a copy of this message
Casey schreef:
On Feb 5, 2008, at 10:43 AM, "Eric Butera" <eric.butera@gmail.com> wrote:
On Feb 5, 2008 1:40 PM, Nathan Nobbe <quickshiftin@gmail.com> wrote:
On Feb 5, 2008 1:36 PM, Hiep Nguyen <hiep@ee.ucr.edu> wrote:
hi all, i have this php statement: <? if($rowB[$rowA[0]]=='Y') {echo "checked";} ?> debugging, i got $rowA[0] = 54, but i want $rowB[$rowA[0]] = $rowB['54']. is this possible? how do i force $rowA[0] to be a string ('54')?<http://www.php.net/unsub.php>
php should handle the conversion internally for you. if you want to type cast a value to a string, simply do (string)$varname -nathan
I was thinking about saying that, but php is loosely typed, so 54 == '54'. I'm thinking something else is wrong here. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
I believe this is the difference with arrays: $a = array(2 => "foo"); Array(0 => null, 1 => null, 2 => "foo") $a = array("2" => "foo"); Array("2" => "foo")
not true: alice:~ jochem$ php -r ' $a = array(2 => "foo"); $b = array("2" => "foo"); var_dump($a, $b);' array(1) { [2]=> string(3) "foo" } array(1) { [2]=> string(3) "foo" } php treats anything that is the string equivelant of an integer as an integer when it comes to array keys - which comes down to the fact that you cannot therefore use a string version of an integer as an associative key. so $a[2] and $a["2"] are always the same element. the same is not exactly true for floats - although you can use them as array keys you'll notice in the output of code below that they are stripped of their decimal part (essentially a floor() seems to be performed on the float value. I have no idea whether this is intentional, and whether you can therefore rely on this behaviour: alice:~ jochem$ php -r ' $a = array(2.5 => "foo"); $b = array("2.5" => "foo"); var_dump($a, $b);' array(1) { [2]=> string(3) "foo" } array(1) { ["2.5"]=> string(3) "foo" } alice:~ jochem$ php -r ' $a = array(2.6 => "foo"); $b = array("2.6" => "foo"); var_dump($a, $b);' array(1) { [2]=> string(3) "foo" } array(1) { ["2.6"]=> string(3) "foo" }


« previous php.general (#268744) next »