Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP字符串索引$str[“test”与$str[0]相同吗?_Php_String_Indexing - Fatal编程技术网

PHP字符串索引$str[“test”与$str[0]相同吗?

PHP字符串索引$str[“test”与$str[0]相同吗?,php,string,indexing,Php,String,Indexing,当引用PHP字符串(如数组)中的元素时,使用方括号[]可以使用类似[2]的数字从字符串中选择特定字符。但是,当使用像[“示例”]这样的字符串索引时,它总是返回与[0]相同的结果 <?php $str="Hello world."; echo $str; // Echos "Hello world." as expected. echo $str[2]; // Echos "l" as expected. echo $str["example"]; // Echos "H", not exp

当引用PHP字符串(如数组)中的元素时,使用方括号[]可以使用类似[2]的数字从字符串中选择特定字符。但是,当使用像[“示例”]这样的字符串索引时,它总是返回与[0]相同的结果

<?php
$str="Hello world.";
echo $str; // Echos "Hello world." as expected.
echo $str[2]; // Echos "l" as expected.
echo $str["example"]; // Echos "H", not expected.

$arr=array();
$arr["key"]="Test."
echo $arr["key"]; // Echos "Test." as expected.
echo $arr["invalid"]; // Gives an "undefined index" error as expected.
echo $arr["key"];

PHP使用类型杂耍将非适合类型的变量转换为适合类型的变量。在您的情况下,PHP希望您的索引是一个数字,确切地说是一个整数。如果您给它一个字符串,它将尝试将其解析为一个数字。如果不可能,则默认为零

旁注:如果你给它一个像“9企鹅”这样的字符串,你会得到一个9


PHP类型转换手册:

PHP使用类型转换将非适合类型的变量转换为适合类型的变量。在您的情况下,PHP希望您的索引是一个数字,确切地说是一个整数。如果您给它一个字符串,它将尝试将其解析为一个数字。如果不可能,则默认为零

旁注:如果你给它一个像“9企鹅”这样的字符串,你会得到一个9


PHP类型杂耍手册:

$str[“example”]
$str=“Hello world.”
返回0,使其返回第一个字母“H”,请参见此处原因:
$str[“example”]
=
$str[“0”]因为示例
而收到hense H,注意这会产生警告,这表明这不是你真正应该做的事情:谢谢你的解释,我想我这里的主要问题是我忘记了将字符串转换成整数,如果找不到有效的数字,结果是0。
$str[“示例”]
$str=“Hello world.”
返回0,这使它返回第一个字母“H”请参见此处原因:
$str[“example”]
=
$str[“0”]因为示例和收到的hense h注意,这会产生一个警告,表示您不应该实际执行此操作:感谢您的解释,我想我这里的主要问题是我忘记了将字符串转换为整数,如果找不到有效的数字,结果是0。挑剔:将字符串转换为数字总是“可能的”。如果在字符串中找不到其他有用的数字,则结果可能只是
0
。→ 吹毛求疵:总是“可能”将字符串转换为数字。如果在字符串中找不到其他有用的数字,则结果可能只是
0
。→