Mathias Hillmann
Mathias Hillmann

Reputation: 1827

Check if any property in a object is empty

I have the following function in a class:

public function __construct()
    {
        $this->api_url = env('SUPRE_API');
        $this->token = env('SUPRE_TOKEN');
        if($this->api_url == null || $this->token == null){
            throw new \Exception("Could not gather the Token or URL from the .env file. Are you sure it has been set?");
        }
    }

However I would like to check if any property in the $this object is empty in a dynamic way, without using an If, considering this will have more properties later.

Upvotes: 1

Views: 60

Answers (1)

u_mulder
u_mulder

Reputation: 54831

You can iterate over $this and throw your exception on first empty property found:

public function __construct()
{
    $this->api_url = env('SUPRE_API');
    $this->token = env('SUPRE_TOKEN');

    foreach ($this as $key => $value) {
        if ($value == null) {
            throw new \Exception("Could not find {$key} value. Are you sure it has been set?");
        }
    }
}

Upvotes: 1

Related Questions