问题描述
资料库栏位型态里面设定的型态是varchar
但在php里面取值时(如下面程式码),有可能取到integer的型态
$array_function = array();for($i=0;$i<$dataCount;$i++){ $result_arr = mysqli_fetch_assoc($result); $fn = $result_arr['function_name']; $array_function[$fn] = array();}
查了以后发现即使你mysql里面设定是varchar,但你用php取值后,若是你的资料是整数,他还是会认成是整数的型态
PHP阵列索引
阵列索引部分可以是整数,也可以是字串,就依据你想要的型态。
所以在设定的时候我会把上面的code改成
$array_function["$fn"] = array();
让他always是字串型态,因为你的索引有整数也有字串会混淆
单引号跟双引号的差别
PHP 会编译「双引号」字串内的变数,而「单引号」则视为纯字串输出,所以单引号会让 PHP 执行速度比较快
而上面的例子$array_function[“$fn”],他就是把$fn经过了编译变成了字串,让我得索引都能是字串的型态
php转型成字串
用strval()转型成字串strval($variableName);
显式转换$string = (string)$intVariable
利用双引号编译$variable = 1111111;$string1 = “$variable”;
双引号怎么显示特殊符号
反斜线
$test = 123;echo "$test";echo "<br>";echo "\$test";
结论
PHP 设计师通常会利用反斜线(\)跳脱字元,让单引号(’)或双引号(”)能够 echo 出来PHP 会编译「双引号」字串内的变数,而「单引号」则视为纯字串输出,单引号会让 PHP 执行速度比较快“$func”跟(string)$func会等价,因为双引号会编译变数内容