PhpStorm:代码分析 - 来自类名的静态调用

时间:2017-01-12 16:26:25

标签: php intellij-idea phpstorm

我在PhpStorm中收到了一个静态调用的常见警告。 我有:

class Test {
  public static function thisIsATest(){
     // do stuff
  }
}

然后,我有:

$className = 'Test';
$className::thisIsATest();

这不是错误,顺便说一下,我的PhpStorm中有这个: warning_phpstorm

有办法解决这个问题吗?至少,是否可以隐藏此警告?

1 个答案:

答案 0 :(得分:1)

对于这个问题,有一些解决方案:

  1. 更改为PHP版本> = 5.3.0

  2. 在较旧的PHP版本中使用 <?php /** * @var $className Test */ $className::thisIsATest();

  3. 在项目设置下更改phpstrom中的代码检查行为(同时确保phpstrom为您当前的项目设置了正确的PhpVersion)

  4. [解决方案]以正确的方式在phpstrom中使用注释声明变量!

  5. 像:

    $className

    现在phpstrom知道TestthisIsATest的一个实例,它有一个名为// Checkout Field Remover add_filter( 'woocommerce_checkout_fields' , 'custom_cats_remove_checkout_field' ); function custom_cats_remove_checkout_field( $fields ) { // Initialising variables $cat1_found = false; $cat2_found = false; // Iterating throuh each cart item foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { // Cart item_id $cart_item_id = $cart_item['data']->id; // For first categories group if(has_term( array( 'metal', 'wood'), 'product_cat', $cart_item_id)){ $cat1_found = true; } // For the second category if(has_term( 'bubblewrap', 'product_cat', $cart_item_id)){ $cat2_found = true; } } //If check came back false it will remove the field in question if ( $cat1_found ) { // Removes Field domain name unset( $fields['billing']['Field_1'] ); } if ( $cat2_found ) { //Removes Field office_emails unset( $fields['billing']['Field_2'] ); } //Return unset result return $fields; } 的方法,并且不会弹出错误提示。