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


All "echo gettype" in php are shown as string

我正在进行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

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

您将希望在不带引号的情况下定义它们,或者强制转换它们以显式更改它们的类型。

阅读此以了解更多信息:http://php.net/manual/en/language.types.type-juggling.php

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

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

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

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

但是22是一个数字。

正如丹所指出的。你会想去掉true周围的引号,因为true不被认为是一个字符串,除非你真的想打印单词true。