Question: Ive looked and tried but I can't find an answer. 

In PHP, is it possible to call a class' member function (when that class requires a constructor to receive parameters) without instantiating it as an object?

A code example (which gives errors):

```
<?php

class Test {
    private $end="";

    function __construct($value) {
        $this->end=$value;
    }

    public function alert($value) {
        echo $value." ".$this->end;
    }
}

//this works:
$example=new Test("world");
$example->alert("hello");

//this does not work:
echo Test("world")::alert("hello");

?>

```

Answer: 
Just do this (in PHP >= 5.4):

```
$t = (new Test("Hello"))->foo("world");

```
You can't call an instance-level method without an instance. Your syntax:

> 
> 
> ```
> echo Test("world")::alert("hello");
> 
> ```
> 
> 

doesn't make a lot of sense. Either you're creating an inline instance and discarding it immediately or the `alert()` method has no implicit `this` instance.

Assuming:

```
class Test {
  public function __construct($message) {
    $this->message = $message;
  }

  public function foo($message) {
    echo "$this->message $message";
  }
}

```

you can do:

```
$t = new Test("Hello");
$t->foo("world");

```

but PHP syntax doesn't allow:

```
new Test("Hello")->foo("world");

```

which would otherwise be the equivalent. There are a few examples of this in PHP (eg using array indexing on a function return). That's just the way it is.