PhpStorm未在数组映射内显示代码提示
我没有得到此代码的代码提示: 我认为PhpStorm未在数组映射内显示代码提示,php,phpstorm,code-completion,Php,Phpstorm,Code Completion,我没有得到此代码的代码提示: 我认为get_index的PHPDoc做得很好,NetBeans似乎理解它并正确地显示提示: /** * Get Index * * @global object $wpdb * @param String $extension_table_name * @return \ZRDN\Recipe[] */ public static function get_indexes($extension_table_name) { global $
get_index
的PHPDoc做得很好,NetBeans似乎理解它并正确地显示提示:
/**
* Get Index
*
* @global object $wpdb
* @param String $extension_table_name
* @return \ZRDN\Recipe[]
*/
public static function get_indexes($extension_table_name) {
global $wpdb;
$db_name = $wpdb->prefix . $extension_table_name;
$selectStatement = "SELECT * FROM `{$db_name}`";
$recipe_indexes = $wpdb->get_results($selectStatement);
return $recipe_indexes;
}
Recipe
在同一文件中定义在同一命名空间下:
class Recipe {
/**
* @var int
*/
public $recipe_id;
/**
* @var int
*/
public $post_id;
...
有什么问题吗?如果您知道
$recipes
始终包含Recipe
类型的对象,请将其用作map函数的$Recipe
参数的类型:
$post_ids = array_map(function(Recipe $recipe) {
return $recipe->recipe_id;
}, $recipes);
通过这种方式,PhpStorm(和其他IDE)可以帮助您完成自动完成,并且当PHP解释器在
$recipes
中遇到错误类型的值时,会触发致命错误。PhpStorm似乎还没有涵盖这种使用情况。只需使用内联PHPDoc手动键入提示您的$recipe
。仅供参考:JetBrains论坛上相同:。简而言之:手动输入typehint(可以是PHPDoc或PHP的原生typehint)。PhpStorm特性票证——NetBeans如何支持这一点毫无意义,但PhpStorm却不支持。我考虑过切换,但我已经在PhpStorm中进行了调试,我不想遇到麻烦。