Int在CentOS 7.1和Laravel 5.1上以PHP形式处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Int在CentOS 7.1和Laravel 5.1上以PHP形式处理相关的知识,希望对你有一定的参考价值。
我在Windows系统上开发并使用!==
比较很多,以确保值和类型都符合预期。我只是遇到了问题(比较失败),并且发现int(在mysql中)类型的值被处理为字符串。
在Windows上它看起来像这样:
Order {#488 ▼
#table: "orders"
#guarded: array:1 [▶]
#hidden: []
#fillable: array:9 [▶]
#dates: array:1 [▶]
#connection: null
#primaryKey: "id"
#perPage: 15
+incrementing: true
+timestamps: true
#attributes: array:14 [▼
"id" => 6
"currency_id" => 1
"user_id" => 1
"coupon_id" => 1
"status" => 2
"created_at" => "2017-06-26 00:37:44"
"updated_at" => "2017-06-26 00:37:50"
"deleted_at" => null
]
在CentOS上像这样:
Order {#488 ▼
#table: "orders"
#guarded: array:1 [▶]
#hidden: []
#fillable: array:9 [▶]
#dates: array:1 [▶]
#connection: null
#primaryKey: "id"
#perPage: 15
+incrementing: true
+timestamps: true
#attributes: array:14 [▼
"id" => "6"
"currency_id" => "1"
"user_id" => "1"
"coupon_id" => "1"
"status" => "2"
"created_at" => "2017-06-26 00:37:44"
"updated_at" => "2017-06-26 00:37:50"
"deleted_at" => null
]
我真的不知道是什么原因引起的。请告诉我需要哪些其他信息才能找到答案。由于我根本不知道,我不确切知道可能相关的内容。
附加信息:
我正在使用Laravel 5.1并使用Laravel的dd()
方法打印此信息。数据是Eloquent Model的一个实例。
问题可能只是与数据库交互的底层扩展稍有不同,或者在它与代码之间的抽象层中存在一些实现差异(版本差异?)。这种有限的信息很难说清楚。
但是,通常,在php中,您应该假设数据库值作为字符串传递给您,即使它们实际上是数据库中的整数/浮点数/布尔值。假设您需要自己进行类型检查和(如果需要)类型转换。
我也提醒你不要过多严格检查PHP。我明白你为什么要这样做,而且在大多数其他语言中我会和你在一起,但PHP的一个定义特征是它对本机类型的漠不关心,它能够自动地在它们之间进行操作,所以在那种语言中你不应该试图过分强迫类型严格。
以上是关于Int在CentOS 7.1和Laravel 5.1上以PHP形式处理的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.5 项目下载文件而不是在浏览器中打开它们 PHP 7.1 MAC
Linux CentOS 7.1安装mysql 5.7.21
Laravel 安装程序 v1.4.1 与 PHP 7.1 包不兼容?
Install PHP 7, Apache, MySQL 5.6 on CentOS / RHEL 7.1 & 6.7 + Wordpress