为什么以及何时应该在PHP中对变量进行类型转换

时间:2012-05-02 19:35:05

标签: php casting

鉴于此声明:

(string)$my_string = 'Hello world';

* VS *

$my_string = 'Hello world';

或*

 (int)$my_int = 1;


 $my_int = 1;

在PHP中定义字符串变量的第一种方法是否有优势?

2 个答案:

答案 0 :(得分:3)

您的“类型转换”代码实际上并没有完成任何任务。

(type) $var = literal这样做:

  1. 使用文字值的原生类型将文字值指定给$var
  2. “返回”(作为表达式)$var投射到所需类型的值。
  3. $var的类型保持不变。

    例如:

    var_dump((string) $s = 1);
    var_dump($s);
    

    输出是:

    string(1) "1"
    int(1)
    

    所以这种语法没有意义。用文字进行类型转换几乎肯定是毫无意义的。

    但是强制变量成为某种类型会很有用,例如:$intvar = (int) $var;

答案 1 :(得分:1)

  

是否优于第一种方式

是肯定的。第二个更简洁。

  

PHP中的类型转换变量有什么好处

将其投射到预期的类型 尽管如此,你很少需要它 并且根据变量定义,您根本不需要它。