I think the issue here is in your understanding of isset, and its relation to if statements. Isset is not needed in doing your comparison at all. It is used only to determine whether a variable has been initialized previously. For example, earlier in your code you have this:
if (isset($_SESSION['referer']) && $_SESSION['referer'] != "") {
This is actually doing two things. First it is checking whether the variable "$SESSION['referer']" was previously set. My assumption is that a previous page on this site is supposed to set this variable, but it's possible, at least theoretically, that it was not set for some reason. If the variable was set previously (isset returned 'true'), it will then check whether "$SESSION['referer']" is not equal to "" (an empty string). This second part (separated by the &&) is a different comparison, and is evaluated separately from the isset.
Techincally speaking the isset here could be skipped, but it's considered bad practice to check or use the value of a variable which is not initialized. This could, in theory, lead to security issues or logic bugs, depending on how the code is used (or changed to be used in the future).
By the way, this statement I used as an example would be the same thing if it were written like this:
if (!empty($_SESSION['referer'])) {
empty basically does an isset and checks if the variable is empty (empty string, 0, false) all in one call.
On a separate note, I didn't see where you initialized $high in this function. Perhaps you mean $this->high, which would be the property high of the class this function appears in?