Are the returns within my session function actually needed?
As for your question, at least Get should not return false if the value is not set, now the caller will not know whether the actual value is false or whether the value is not set.

Other than that,


I would suggest you use PHP_SESSION_DISABLED , PHP_SESSION_NONE and PHP_SESSION_ACTIVE instead of 1, 2 and 3
To have Status_Session call session_status is confusing, maybe call it session_status_string ? Also, this should not return false, but maybe "Session status could not be determined"
I dont understand this : if (session_status() === 1){ $this-&gt;Session_Started = true; if session_status() == 1, then sessions are disabled, why would you set Session_Started to true ?
session_start() will return a boolean that indicates whether the session actually started, you should check that boolean instead of assuming success with $this-&gt;Session_Started = true;
session_start() also can resume a session, I am not a PHP master, but it seems to me you could replace init() with



public function init(){
    /* Start or Resume a session */
    $this-&gt;Session_Started = session_start();
    return $this-&gt;Session_Started;
}




Finally, if you are adamant about checking whether the session is started or not in set, would it not make sense to start the session for the caller, so that your code works auto-magically ?



public function Set ($Key = false, $Value){
  if (!isset($_SESSION)) { 
    init(); 
  }
  $_SESSION[$Key] = $Value;
}



Also, as mini-tech commented, if you expect a session, and it is not there, then you might want to throw an exception instead of returning false.