Re: string vs number

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

 



Casey schreef:
On Feb 5, 2008, at 10:43 AM, "Eric Butera" <eric.butera@xxxxxxxxx> wrote:

On Feb 5, 2008 1:40 PM, Nathan Nobbe <quickshiftin@xxxxxxxxx> wrote:
On Feb 5, 2008 1:36 PM, Hiep Nguyen <hiep@xxxxxxxxxx> 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"
}




--
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