php中的所有“echo gettype”都显示为字符串

时间:2013-12-01 05:59:11

标签: php

我正在迈出PHP的第一步。问题是我定义了不同类型的变量,但输出显示其类型为字符串。

代码

    $firstname = 'Hosam';
    $age = '22';
    $height = '1.84';
    $mobile = 'true';
            echo $firstname . '<br/>';
            echo gettype($firstname).'<br/>';
            echo $age . '<br/>';
            echo gettype($age).'<br/>';
            echo $height . '<br/>';
            echo gettype($height).'<br/>';
            if ($mobile) {echo 'i9300'.'<br/>';}
            else {echo 'Does not have smartphone'.'<br/>';}
            echo gettype($mobile);

输出

Hosam 
string
22
string
1.84
string
i9300
string

2 个答案:

答案 0 :(得分:1)

您必须从数字中删除引号。

$firstname = 'Hosam';
$age = 22;
$height = 1.84;
$mobile = 'true';

引号中的任何值都是一个字符串,即使它是一个数字

所以'22'是一个字符串。

但22是一个数字。

丹也指出。你会想要删除true附近的引号,因为true不被认为是字符串,除非你真的想要打印单词true。

答案 1 :(得分:1)

在PHP中,如果你这样定义它就是一个字符串,直到你做了一些类型的东西,比如添加它,或者检查它的真实性。

您需要在没有引号的情况下定义它们,或者将它们转换为显式更改其类型。

阅读本文以获取更多信息:http://php.net/manual/en/language.types.type-juggling.php