PHP中变量类型的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP中变量类型的问题相关的知识,希望对你有一定的参考价值。

string ->字符串
boolean - >布尔值
array ->数组
int ->整型
float ->浮点数

real ->?
integer ->?
double ->?
bool ->?
object-对象

请问上述的是php中的变量类型吗,字符串和布尔值和对象,数组我大体懂点,这个浮点数是取小数的意思吗,int是去掉小数取整数的意思吗,还有其他的是什么意思,谁来给我讲解下,不胜感谢~

PHP 支持 8 种原始数据类型。

四种标量类型:

boolean(布尔型)false 和 true
只有两个取值

integer(整型)
也就是非小数

float(浮点型,也称作 double(取值范围比float小))
小数

string(字符串)

两种复合类型:

array(数组)

object(对象)

最后是两种特殊类型:

resource(资源)

NULL(无类型)

为了确保代码的易读性,本手册还介绍了一些伪类型:

mixed(混合类型)

number(数字类型)

callback(回调类型)

更详细的说明LZ可以百度搜索:php数据类型 会有很详细的介绍
参考技术A string是PHP的数据类型,字符串。这个应该归属于基本的标量类型。
boolean和后面的bool同义,布尔值,也是四种基本的标量类型之一。
array是PHP的数据类型,数组。结构类型
int是PHP的数据类型,整数型。和后面的integer同义。
float和后面的real、double均指浮点型。而且,在PHP的在线文档中,似乎没有明确这三种类型的精度区别,似乎可以当成一种类型。兼且PHP定义变量无需明确数据类型。所以感觉可以把这三种类型视为同义。

object是对象类型,也是一种结构类型。
参考技术B 浮点型分单精度和双精度 ,单精度是指有小数点的比如1.234这些。
int是整形,不具有去掉小数的功能。只能存整形数字。如果你带有小数的话就不能用int 不然报错。追问

双精度呢

追答

双精度的字符长度是单精度的一倍。

php中如何获取db2变量的数据类型?

【中文标题】php中如何获取db2变量的数据类型?【英文标题】:How to get the data type of db2 variables in php? 【发布时间】:2014-07-23 09:09:46 【问题描述】:

从 PHP 代码中,我尝试在 DB2 表中插入一个新行,其中我有列名但没有相应的数据类型。

Insert into <table_name> (column1,column2,column3,.....) values ('value1','value2','value3',....)

所以,如果任何列是日期或时间戳数据类型,'value' 周围的单引号会使 db2_exec 函数抛出错误:

Warning: db2_exec(): Statement Execute Failed in C:\Program Files (x86)\insight_db.php on line 68 [IBM][CLI Driver][DB2/NT64] SQL0180N The syntax of the string representation of a datetime value is incorrect. SQLSTATE=22007 SQLCODE=-180

为了避免在这些值周围放置'',我需要获取表格每一列的数据类型,从而检查是否放置引号的条件。

【问题讨论】:

DB2 没有抱怨引号。它抱怨日期或时间戳的格式。 'YYYY-MM-DD' 应该没问题。你在用什么? 就我而言,我正在动态获取值。这些值也可以为空。如果我在控制中心的日期变量中不插入任何内容,它就可以正常工作。 【参考方案1】:

您可以查询目录视图SYSCAT.COLUMNS获取信息:

select
  colname, typename
from 
  syscat.columns
where
  tabschema = 'YOURSCHEMA' and
  tabname = 'YOURTABLE'

但是,您的方法行不通,因为日期时间文字必须用单引号括起来,删除它们会使您的insert 语句无效。为避免 SQL0180N 错误,您可以提供 ISO 格式的日期时间值,例如YYYY-MM-DD-HH.MM.SSTIMESTAMP

【讨论】:

【参考方案2】:

要获取列的数据类型,您可以试试这个:

$result = mysql_query("SHOW COLUMNS FROM sometable");
if ($result) 

    if (mysql_num_rows($result) > 0) 
    
         while ($row = mysql_fetch_assoc($result)) 
         
             print_r($row['Field']);
             print_r($row['Type']);
         
    

然后这将打印字段的字段名称和数据类型。

希望对您有所帮助。

【讨论】:

但是你能给我任何适用于 IBM DB2 的解决方案吗? 我认为这可能有效: DESCRIBE TABLE schema.TABLE_NAME 该命令将为每一列输出以下信息。列名 类型 架构类型名 长度 比例(精度) Nulls(可以为空) 我也试过这个。但是 db2_exec() 不能执行 describe 语句。有没有办法在 php 中执行 DESCRIBE 语句?不管怎样,谢谢你的帮助。

以上是关于PHP中变量类型的问题的主要内容,如果未能解决你的问题,请参考以下文章

PHP变量名、变量值、类型

PHP变量和数据类型

Netbeans (PHP) 中的变量类型提示

PHP变量的值类型和引用类型

PHP内核之旅-3.变量

php变量类型分类