PHP类型杂耍
定义和用法
PHP被称为动态类型语言。在PHP中既不需要也不支持变量的显式类型声明。与C,C++和Java相反,PHP变量的类型取决于为其分配的值,而不是其他方式。此外,变量在分配不同类型的值时,其类型也会发生变化。PHP处理动态改变变量值的这种方法称为类型变戏法。
$var="Hello"; // variable is string type $var=100; //same variable now becomes int
在计算表达式时也会发生类型变戏法。在此示例中,包含数字的字符串变量将自动转换为整数,以评估加法表达式
示例
<?php $var1=100; $var2="100"; $var3=$var1+$var2; var_dump($var3); ?>
输出结果
这将产生以下结果-
int(200)
如果字符串以数字开头,则在执行计算时会忽略结尾的非数字字符(如果有)。但是,PHP解析器发出如下所示的通知
示例
<?php $var1=100; $var2="100 days"; $var3=$var1+var2; var_dump($var3); ?>
输出结果
这将产生以下结果-
PHP Notice: A non well formed numeric value encountered in ... int(200)
类型转换强制变量用作特定类型。以下脚本显示了不同类型的强制转换运算符的示例
示例
<?php $var1=100; $var2=(boolean)$var1; $var3=(string)$var1; $var4=(array)$var1; $var5=(object)$var1; var_dump($var2, $var3, $var4, $var5); ?>
输出结果
这将产生以下结果-
bool(true) string(3) "100" array(1) { [0]=> int(100) } object(stdClass)#1 (1) { ["scalar"]=> int(100) }
将变量转换为字符串也可以通过将双引号引起来
示例
<?php $var1=100.50; $var2=(string)$var1; $var3="$var1"; var_dump($var2, $var3); ?>
输出结果
这将产生以下结果-
string(5) "100.5" string(5) "100.5"