PHP 资料库取值字串型态问题与解决纪录

问题描述
资料库栏位型态里面设定的型态是varchar
https://ithelp.ithome.com.tw/upload/images/20220221/20146740fIZtU3KvbW.png
但在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取值後,若是你的资料是整数,他还是会认成是整数的型态
https://ithelp.ithome.com.tw/upload/images/20220221/20146740AJFJkdeyDZ.png
PHP阵列索引
阵列索引部分可以是整数,也可以是字串,就依据你想要的型态。
所以在设定的时候我会把上面的code改成

$array_function["$fn"] = array();

让他always是字串型态,因为你的索引有整数也有字串会混淆

单引号跟双引号的差别
PHP 会编译「双引号」字串内的变数,而「单引号」则视为纯字串输出,所以单引号会让 PHP 执行速度比较快
而上面的例子$array_function[“$fn”],他就是把$fn经过了编译变成了字串,让我得索引都能是字串的型态

php转型成字串

  1. 用strval()转型成字串
strval($variableName);
  1. 显式转换
$string = (string)$intVariable
  1. 利用双引号编译
$variable = 1111111;
$string1 = “$variable”;

双引号怎麽显示特殊符号
反斜线

$test = 123;
echo "$test";
echo "<br>";
echo "\$test";

https://ithelp.ithome.com.tw/upload/images/20220221/20146740XYFQiTRFkR.png

结论

  1. PHP 设计师通常会利用反斜线(\)跳脱字元,让单引号(’)或双引号(”)能够 echo 出来
  2. PHP 会编译「双引号」字串内的变数,而「单引号」则视为纯字串输出,单引号会让 PHP 执行速度比较快
  3. “$func”跟(string)$func会等价,因为双引号会编译变数内容

<<:  E-Aadhar UIDAI Gov, Status Check Online

>>:  MySQL 修改密码以後无法登入问题纪录

[Day 9]Request

首先利用function index来测试Request功能,在终端机上打php artisan r...

Day 13 (Ai)

1.上排工具 1.物件>封套扭曲 a.以弯曲制作>鱼眼 b.以上层物件制作 => ...

Day26 Cookie 的使用-1

cookie的使用方法: 这边我们用setcookie() 添加COOKIE值 setcookie(...

[Day9] Vite 出小蜜蜂~撞击行为 Collision Behavior!

Day9 Collision Behavior 当 Laser 跟 Squid 相互撞击时, 我们想...

DAY1 自我介绍及任务规划

我是谁为何要参与 您好我是阿刘,是一名就读资讯管理的同学,之所以会想要参加这个挑战,是因为经历过了社...