<?php
$d="123.45";
$e=settype($d,float);
echo "$d <br>";
var_dump($d);
echo "<br> $e <br>";
var_dump($e);
echo "<p>";
?>  为什么输出$e是1呢?不明白了,

解决方案 »

  1.   

    $e 是settype执行结果,成功了是true,打印出来是1settype($d,"float");这样比较好
      

  2.   

    settype($d,"float");float不是浮点数类型吗?
    boolean才是布尔类型啊。
      

  3.   

    浮点,所以var_dump($d);打印结果难道不是float吗?执行之前可是字符串型
    执行结果依然保存在$d呢$e是settype函数执行结果,执行成功或失败,所以var_dump($e);结果是布尔型的
      

  4.   

    你得看函数的返回结果,不能光凭自己想像...这个函数回返回 TRUE 或者 FALSE 来让你知道是否执行成功,而不是返回设置后的函数类型...
      

  5.   

    settype -- 设置变量的类型
    描述
    bool settype ( mixed var, string type )
    将变量 var 的类型设置成 type。 type 的可能值为: 
    “boolean” (或为“bool”,从 PHP 4.2.0 起) “integer” (或为“int”,从 PHP 4.2.0 起) “float” (只在 PHP 4.2.0 之后可以使用,对于旧版本中使用的“double”现已停用) “string” “array” “object” “null” (从 PHP 4.2.0 起) 
    如果成功则返回 TRUE,失败则返回 FALSE。