是否有可能使用"数据类型"在PHP?
我有班级页面,它有变量(我使用公开,我不需要私人,我没有安全风险,等等)。我创建了一些我的类的对象将它们添加到数组中,然后我通过 foreach 对它们进行修改,并且我想在foreach中使用使用迭代对象,就像我的Page对象一样。所以我想知道我的ide(PhpStorm)知道数组中的对象是Page的类型,所以他可以把我的变量告诉我。
在Java中我会做这样的事情(页面)myObject 。比起知道知道" Juhuu程序员说,myObject应该是Page的类型,所以我让他像使用Page对象一样工作,而不仅仅是像一些普通对象"
下面的代码应该解释更多我的问题:
注意:
我知道我可以在foreach页面内写 - > $ url;它会起作用。但是我该怎么记住变量的所有名称。我更不可能想要记住它们或者必须找到它们,我希望它们低声说。
class Page {
public $url;
public $array_of_titles;
//...
function __construct($url,$tit) {
$this->url = $url;
$this->array_of_titles = $tit;
}
}
$array_of_pages = array();
$url = "http://..."
$tit = {"aaa", "bbb", "ccc"}
$page = new Page($url, $tit);
$array_of_pages[] = $page;
//... add more pages to the array
foreach($array_of_pages as $page) {
$my_url = $page->url; //this words but don't whisper obviously
//because in $page could by any object
//$my_url = (Page)$page->url; //this I would do in java to say
//"Hey $page is typeof Page man, I wanna whisper its methods"
}
答案 0 :(得分:2)
像这样使用@var注释:
foreach($allPages as $page)
{
/*
* @var PageType $page
*/
$page->doesSomething();
}
@var采用类类型及其应用的变量,您还可以在类或实例化(iirc)中声明数组是使用MyObjectType[]
的类数组。
此外,使用private
和protected
代替public
更多是关于良好的编程设计而不是安全性,我建议您阅读它,以及多态和继承。