PhpStorm не показывает подсказки кода внутри array_map

Я не получаю подсказки кода для этого кода:

введите описание изображения здесь

PHPDoc для get_indexes Я думаю, что все сделано правильно, и 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;
...

Есть идеи, в чем может быть проблема?

1

Решение

Если вы знаете, что $recipes всегда содержит объекты типа Recipe затем используйте его как тип $recipe аргумент функции карты:

$post_ids = array_map(function(Recipe $recipe) {
return $recipe->recipe_id;
}, $recipes);

Таким образом PhpStorm (и другие IDE) могут помочь вам с автозаполнением, а также интерпретатор PHP вызывает фатальную ошибку, когда он встречает значение в $recipes неправильного типа.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]