Extract/Introduce variable
The Extract Variable refactoring puts the result of the selected expression into a variable. It declares a new variable and uses the expression as an initializer. The original expression is replaced with the new variable (see the examples below).
To perform this refactoring, you can use:
In-place refactoring. In this case you specify the new name right in the editor.
Refactoring dialog, where you specify all the required information. To make such a dialog accessible, open the Settings/Preferences dialog (Ctrl+Alt+S), go to Editor | Code Editing, and select the In modal dialogs refactoring option in the Refactorings area.
You can select the expression to be replaced with a variable yourself. You can as well use smart expression selection. In this case PhpStorm will help you select the desired expression.
This refactoring is also available for JavaScript and Style Sheets.
Extract a variable in place
In the editor, select the expression to be replaced with a variable. You can do that yourself or use the smart expression selection feature to let PhpStorm help you. So, do one of the following:
Highlight the expression. Then choose
on the main menu or on the context menu.Alternatively, press Ctrl+Alt+V.
Place the cursor before or within the expression. Choose
on the main menu or on the context menu. or press Ctrl+Alt+V.
If more than one occurrence of the selected expression is found, select Replace this occurrence only or Replace all occurrences in the Multiple occurrences found popup menu. To select the required option, just click it. Alternatively, use the Up and Down arrow keys to navigate to the option of interest, and press Enter to select it.
Specify the name of the variable. Do one of the following:
Select one of the suggested names from the list. To do that, double-click the suitable name. Alternatively, use the Up and Down arrow keys to navigate to the name of interest, and Enter to select it.
Edit the name by typing. The name is shown in the box with red borders and changes as you type. When finished, pressEnter.
Extract a variable using the dialog
If the In modal dialogs refactoring option is selected in the Refactorings area on the Code Editing page of the Settings/Preferences dialog (Ctrl+Alt+S), the Introduce Variable refactoring is performed by means of the Extract Variable Dialog.
![the Enable in-place mode setting the Enable in-place mode setting](https://resources.jetbrains.com/help/img/idea/2022.1/ps_enableInplaceRefactoringCleared.png)
In the editor, select the expression to be replaced with a variable. You can do that yourself or use the smart expression selection feature to let PhpStorm help you. So, do one of the following:
Highlight the expression. Then choose
on the main menu or on the context menu.Alternatively, press Ctrl+Alt+V.
Place the cursor before or within the expression. Choose
on the main menu or on the context menu. or press Ctrl+Alt+V.From the Expressions list, select the expression. To do that, click the required expression. Alternatively, use the Up and Down arrow keys to navigate to the expression of interest, and then press Enter to select it.
In the Extract Variable Dialog dialog:
Specify the variable name next to Name field. You can select one of the suggested names from the list or type the name in the Name box.
If more than one occurrence of the selected expression is found, you can select to replace all the found occurrences by selecting the corresponding checkbox. If you want to replace only the current occurrence, clear the Replace all occurrences checkbox.
For ActionScript, you can choose to introduce a constant rather than a variable. To do that, select the Make constant checkbox.
Click OK.
PHP Example
Before | After |
---|---|
public function getFeedObject($title, $description)
{
global $wgSitename, $wgContLanguageCode, $wgFeedClasses, $wgTitle;
if (!isset($wgFeedClasses[$this->format]))
return false;
return new $wgFeedClasses[$this->format]
("$wgSitename - {$title} [$wgContLanguageCode]", htmlspecialchars());
}
|
public function getFeedObject($title, $description)
{
global $wgSitename, $wgContLanguageCode, $wgFeedClasses, $wgTitle;
$feedTitle = "$wgSitename - {$title} [$wgContLanguageCode]";
if (!isset($wgFeedClasses[$this->format]))
return false;
return new $wgFeedClasses[$this->format]
($feedTitle, htmlspecialchars());
}
|