class Foo
{
public $var ;
function __construct($value)
{
$this->var = $value ;
}
}
$myFoo = new Foo('hello');
echo $myFoo->var . '<br>' ; // output : hello
// Question : how can I prevent another programer from accidentaly doing the following
$myFoo = 4 ;
echo $myFoo ; // output : 4
我的问题是在评论//问:...防止PHP对象从自动浇注
我想我的同事能够赋值给$ myFoo只使用$ myFoo-> VAR (或任何公共存取器是在类Foo可用)
谢谢
编辑: 所有关于谁声称这是不可能的用户,SPL_Types PECL extention是能够做到这一点(以一定程度上请参阅例如http://php.net/manual/en/class.splint.php或http://blog.felixdv.com/2008/01/09/spl_types-in-php-and-strong-typing/
你不能,但是当你需要使用它,你可以检查变量类型并抛出一个异常/错误,如果它不是你所期望的。 你是不是真的在你的榜样重铸,你分配一个新的值给一个变量。 – datasage
你不能这样做。只有在使用'='运算符时才能完成。 –
您可以编写自己的IDE,也可以确保与聪明人一起工作。 – moonwave99