에 메소드를 호출하는?PHP 구문은 첫번째 변수에 객체를 할당하도록 강요받지 않고 <strong>일시적으로 선언 된 객체</strong>의 메소드를 호출 할 수있는 방법이 있나요 임시 개체
은 아래를 참조하십시오 :
class Test
{
private $i = 7;
public function get() {return $this->i;}
}
$temp = new Test();
echo $temp->get(); //ok
echo new Test()->get(); //invalid syntax
echo {new Test()}->get(); //invalid syntax
echo ${new Test()}->get(); //invalid syntax
@stereofrog Andrew Gutmans가 Zend Technologies의 창립자 인 이유는 그가 그 이유를 알고 있다고 믿고 있습니다. – Gordon
@stereofrog 글쎄, 핵심 커뮤니티에 속해 있지 않습니다. Andi의 진술에 의심을 품기위한 PHP의 내부 동작에 대한 충분한 통찰력이 없습니다. 그리고''(new foo) -> bar()'가 정적 메서드 나 클로저보다 어떤 이점을 더할 지 아직 보지 못했습니다. – Gordon
@stereofrog 금지! = 소개되지 않았습니다. 그것은 주목할만한 차이입니다. 개인적으로, 나는이 표기법에 부가 가치가 보이지 않습니다. 물론, 덜 장황하지만 읽기 쉽지 않습니다. '$ a = 새로운 Foo; $ b = $ a-> bar(); $ c = $ b [25]; $ c ('blah');는 같은 결과를 얻을 것입니다. 이 점에서 PHP가 더 이상 완벽하게 만들지는 못합니다. 당신은'클래스 A {public function b ($ c) {return strtoupper ($ c); }} $ a = array (create_function ('', 'return new A;')); $ a [0]() -> b ('foo');'모든 비용으로 가독성을 망칠 경우. – Gordon