Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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_Phpstorm_Type Conversion - Fatal编程技术网

在php中键入,重新键入并使用其变量

在php中键入,重新键入并使用其变量,php,phpstorm,type-conversion,Php,Phpstorm,Type Conversion,是否有可能在php中使用“数据类型” 我有类页面,它有变量(我使用public,我不需要private,没有安全风险,等等)。我创建了我的类的一些对象,将它们添加到数组中,然后通过foreach对它们进行攻击,我想像我的页面对象一样在foreach中使用迭代对象。所以我想让我的ide(PhpStorm)知道数组中的对象是页面类型的,这样他就可以悄悄地告诉我他的变量 在Java中,我会这样做(Page)myObject。ide知道“Juhuu程序员说,myObject应该是页面类型,所以我让他像处

是否有可能在php中使用“数据类型” 我有类页面,它有变量(我使用public,我不需要private,没有安全风险,等等)。我创建了我的类的一些对象,将它们添加到数组中,然后通过foreach对它们进行攻击,我想像我的页面对象一样在foreach中使用迭代对象。所以我想让我的ide(PhpStorm)知道数组中的对象是页面类型的,这样他就可以悄悄地告诉我他的变量
在Java中,我会这样做(Page)myObject。ide知道“Juhuu程序员说,myObject应该是页面类型,所以我让他像处理页面对象一样工作,而不仅仅像处理一般对象一样”
下面的代码应该解释更多我的问题:

注意:
我知道我可以在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"
}

使用@var注释,如下所示:

foreach($allPages as $page)
{
    /*
    * @var PageType $page 
    */
    $page->doesSomething();
}
@var接受类类型及其应用的变量,您还可以在类或实例化(iirc)中的声明处使用
MyObjectType[]
指示数组是类的数组


另外,使用
private
protected
而不是
public
更多的是关于良好的编程设计,而不是安全性,我建议您阅读它,以及多态性和继承性。

在PHPStorm中,具体来说,将数据类型和变量放在何处并不重要。PHP及其工具有时可能是一堆奇怪的东西。我仍然渴望在PHPthanks-Everon中使用完全严格的类型暗示(不仅仅是对象),很高兴知道。。。关于你严格的暗示。。。请咬紧牙关,改用C#。我坚持。Netbeans中的符号是/*@var$variable Type*/考虑到所有语言符号都是Type variable,这很奇怪,但哦。。这是youAhaha的Javadoc,我已经考虑过了,相信我。当我在桌面应用程序中需要C#时,C#非常适合使用,但除此之外,我将继续使用PHP:)但是如果您需要添加与检索和/或设置类对象持有的数据相结合的功能,该怎么办?您必须重写应用程序的多个部分。把工作省下来,提前想一想(imo)。