Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP类中,如何使变量成为特定类型?_Php_Class_Variables - Fatal编程技术网

在PHP类中,如何使变量成为特定类型?

在PHP类中,如何使变量成为特定类型?,php,class,variables,Php,Class,Variables,我有一个PHP类,我希望它有它,所以变量只是一个布尔值 class TestClass { private $isTrue; public function __construct ( $isTrue) { $this -> isTrue = $isTrue; } public function getIsTrue ($isTrue) { return $this -> isTrue; } publ

我有一个PHP类,我希望它有它,所以变量只是一个布尔值

class TestClass {
    private $isTrue;

    public function __construct ( $isTrue) {
        $this -> isTrue = $isTrue;
    }

    public function getIsTrue ($isTrue) {
        return $this -> isTrue;
    }

    public function setIsTrue ($isTrue) {
        $this -> isTrue = $isTrue;
    }
}
或者这是我在setter和构造函数中需要做的事情吗

class TestClass {
    private $isTrue;

    public function __construct ( $isTrue) {
        $this -> isTrue = (bool)$isTrue;
    }

    public function getIsTrue ($isTrue) {
        return $this -> isTrue;
    }

    public function setIsTrue ($isTrue) {
        $this -> isTrue = (bool)$isTrue;
    }
}

是的,在PHP<7中,您必须手动执行此操作,正如您所做的那样

但是,在PHP 7中,可以使用标量类型提示来实现相同的目的:

<?php
class TestClass {
    private $isTrue;

    public function __construct(bool $isTrue) {
        $this->isTrue = $isTrue;
    }

    public function getIsTrue() {
        return $this->isTrue;
    }

    public function setIsTrue(bool $isTrue) {
        $this->isTrue = $isTrue;
    }
}

$tc = new TestClass(true);
var_dump($tc->getIsTrue()); //true

$tc->setIsTrue(false);
var_dump($tc->getIsTrue()); //false

$tc->setIsTrue(1);
var_dump($tc->getIsTrue()); //true

是的,在PHP<7中,您必须手动执行此操作,就像您所做的那样

但是,在PHP 7中,可以使用标量类型提示来实现相同的目的:

<?php
class TestClass {
    private $isTrue;

    public function __construct(bool $isTrue) {
        $this->isTrue = $isTrue;
    }

    public function getIsTrue() {
        return $this->isTrue;
    }

    public function setIsTrue(bool $isTrue) {
        $this->isTrue = $isTrue;
    }
}

$tc = new TestClass(true);
var_dump($tc->getIsTrue()); //true

$tc->setIsTrue(false);
var_dump($tc->getIsTrue()); //false

$tc->setIsTrue(1);
var_dump($tc->getIsTrue()); //true

这就是我在第二个代码块中所做的吗?变量类型是在PHP中根据变量使用情况在运行时定义的,因此不能以独占方式定义。这就是我在第二个代码块中所做的吗?变量类型是在PHP中根据变量使用情况在运行时定义的,因此不能以独占方式定义。