public function output():string {
// Buffer will be null before exec is called...
		if(is_null($this->buffer)) {
			$this->exec();
		}

		curl_close($this->ch);

// ...But will always be a string after exec is called, even if empty.
		if(strlen($this->buffer) === 0) {
			throw new NoOutputException();
		}

		return $this->buffer;
	}
public function output():string {
// Buffer will be null before exec is called...
		if(is_null($this->buffer)) {
			$this->exec();
		}

		curl_close($this->ch);

// ...But will always be a string after exec is called, even if empty.
		if(strlen($this->buffer) === 0) {
			throw new NoOutputException();
		}

		return $this->buffer;
	}
Return string containing last exec call's output
@throws NoOutputException