2016-12-04 7 views
5

की पहचान?PhpStorm: निकालने() किसी को भी पता है PhpStorm में एक सेटिंग है कि <code>extract()</code> समारोह उपयोग करते हुए उत्पन्न चर की पहचान करने को ट्रिगर कर सकते है कि क्या वहाँ चर

उदाहरण निम्नलिखित की तरह कुछ होगा:

/** 
* @return array 
*/ 
protected function orderSet() : array 
{ 
    //... 

    return [ 
     'colour' => $colour, 
     'green' => $green, 
     'orange' => $orange 
    ]; 
} 


/** 
* @test 
*/ 
public function returns_correct_attribute_names() 
{ 
    $params = $this->orderSet(); 
    extract($params); 

    $this->assertEquals(
     'Colour', 
     $colour->name 
    ); 
} 

फिलहाल किसी भी चर है कि परीक्षण में निकाला गया है पर प्रकाश डाला गया है (गैर मान्यता प्राप्त), लेकिन शायद वहाँ एक सेटिंग है कि इस व्यवहार बदल सकते हैं?

+1

कोड में उदाहरण आप 'साथ @ var' इनलाइन phpdoc टिप्पणी का उपयोग आईडीई बताने के लिए कि इस परिवर्तनीय जाना जाता है और किस प्रकार यह है कर सकते हैं:'/** @var MyClass $ रंग */' – LazyOne

+0

धन्यवाद @LazyOne - एनोटेशन का उपयोग करने के अलावा, PhpStorm में और कुछ नहीं है? –

+0

वास्तव में, बस कोशिश की और यह या तो काम नहीं कर रहा था। –

उत्तर

6

समाधान है कि LazyOne वास्तव में की पेशकश की काम करता है। हालांकि इसे लागू करने के लिए आपको थोड़ा और संदर्भ चाहिए।

सही ढंग से चर आप टिप्पणी घोषित करने के लिए चाहते हैं के बारे में सूचित करने के PHPSTORM सीधे ऊपरनिकालने() और नहीं माता पिता समारोह रखा जाना चाहिए।

public function db(){ 
    $db = new SQLite3('db/mysqlitedb.db'); 

    $payments = $db->query('SELECT * FROM payments'); 

    while ($pay = $payments->fetchArray()){ 
     /** 
     * @var string $to_user 
     * @var string $from_user 
     * @var number $amount 
     */ 
     extract($pay); 
     if (isset($to_user, $from_user, $amount)) 
      echo "TO: {$to_user}| FROM: {$from_user}| $ {$amount} \n"; 
    }; 
} 

यह मेरे कोड से एक कामकाजी नमूना है (किसी कारण से आपकी प्रतिलिपि नहीं बना सकता)।

निकालने() फ़ंक्शन का उपयोग करने से पहले आप छुपा चर और डेटा प्रकारों के ऊपर टिप्पणी ब्लॉक में घोषित करने से पहले देख सकते हैं।

बोनस: यदि आप निकालने का इरादा रखते हैं, तो मैं अत्यधिक अनुशंसा करता हूं कि आप जिस सरणी को पार्सिंग कर रहे हैं, वह सुनिश्चित करने के लिए आप एक जारीकर्ता का उपयोग करें। ऊपर

+3

हू ... PHP का उपयोग कर 10 से अधिक वर्षों के बाद, टीआईएल: जारीकर्ता 1 से अधिक चर ले सकता है। +1 – Oberst

संबंधित मुद्दे

 संबंधित मुद्दे