The way processes are executed is that the Terminal window you open is running within the shell spawned by it. Every time you update PHPStorm, unless you're using customized methods of installing (or the Snap version of PHPStorm), you have to 'redo' the application launcher. Because that's not done automatically, you have to execute the script by hand until you use the in-built functions to create application launchers (see the second section of my answer).
Because you execute the script on the command line, there's a parent/child execution tree that relates to it, with the 'parent' of the chain being the terminal session. Because of the way the system handles execution trees, if you close the terminal (a parent process) it'll try to also close the child processes (unless disowned by the shell, which is not typical if you're running the script directly as you said).
Therefore your execution tree looks like this:
|_ [the run script for PHPStorm]
|_ [all child processes which actually run PHPStorm, which has its own
execution tree as well for all its processes and threads]
Killing or closing the parent gnome-terminal kills the shell running inside it, which then kills or closes the children in the chain going all the way down until the end of the tree is reached.
You probably should use PHPStorm's built in "Create Application Launcher" function, and you might have to do this every time you install a newer version or update. In most of JetBrain's IDEs, you can install the standard launcher so you don't need to use the start script by using their built-in "Create launcher" tools.
To create a launcher you can use on the command line, once the IDE is open, go to "Tools", and then click "Create Command Line Launcher".
To create a launcher for the GUI for the applications menu or the Unity dash/search, go to "Tools" and then click "Create Desktop Entry".
With the Desktop entry you won't need to open the terminal to launch PHPStorm anymore