Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:95417 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 15657 invoked from network); 23 Aug 2016 15:05:48 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 23 Aug 2016 15:05:48 -0000 Authentication-Results: pb1.pair.com smtp.mail=lauri.kentta@gmail.com; spf=softfail; sender-id=softfail Authentication-Results: pb1.pair.com header.from=lauri.kentta@gmail.com; sender-id=softfail Received-SPF: softfail (pb1.pair.com: domain gmail.com does not designate 188.117.41.47 as permitted sender) X-PHP-List-Original-Sender: lauri.kentta@gmail.com X-Host-Fingerprint: 188.117.41.47 mailgateway.locotech.fi Linux 2.6 Received: from [188.117.41.47] ([188.117.41.47:44019] helo=mailgateway.locotech.fi) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id EA/11-10212-A466CB75 for ; Tue, 23 Aug 2016 11:05:46 -0400 Received: from localhost (mailgateway [127.0.0.1]) by mailgateway.locotech.fi (Postfix) with ESMTP id 9E3D6A365F7; Tue, 23 Aug 2016 18:05:42 +0300 (EEST) X-Virus-Scanned: amavisd-new at locotech.fi X-Spam-Flag: NO X-Spam-Score: -1.998 X-Spam-Level: X-Spam-Status: No, score=-1.998 tagged_above=-9998 required=5 tests=[ALL_TRUSTED=-1, BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FREEMAIL_FROM=0.001, NML_ADSP_CUSTOM_MED=0.9] autolearn=no autolearn_force=no Received: from mailgateway.locotech.fi ([127.0.0.1]) by localhost (mailgateway.locotech.fi [127.0.0.1]) (amavisd-new, port 10024) with LMTP id NKc4U2hZtBYo; Tue, 23 Aug 2016 18:05:30 +0300 (EEST) Received: from posti.fimnet.fi (posti.fimnet.fi [172.16.1.44]) by mailgateway.locotech.fi (Postfix) with ESMTP id 66ED3A365AA; Tue, 23 Aug 2016 18:05:30 +0300 (EEST) Received: from k-piste.dy.fi (unknown [172.16.1.39]) by posti.fimnet.fi (Postfix) with ESMTPSA id 48E67101B4A; Tue, 23 Aug 2016 18:05:30 +0300 (EEST) Received: from localhost.localdomain ([::1] helo=k-piste.dy.fi) by k-piste.dy.fi with esmtp (Exim 4.87) (envelope-from ) id 1bcDGb-0003A9-V9; Tue, 23 Aug 2016 18:05:29 +0300 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Tue, 23 Aug 2016 18:05:29 +0300 To: Alexander Lisachenko Cc: Julien Pauli , "Christoph M. Becker" , Levi Morrison , Rowan Collins , internals@lists.php.net In-Reply-To: References: <031a2bf1-1996-1144-2b85-e10a40be9514@gmail.com> <7b81c830-1d05-a4ac-4713-1bb67cbec12c@gmx.de> Message-ID: X-Sender: lauri.kentta@gmail.com User-Agent: Roundcube Webmail/1.2.1 Subject: Re: [PHP-DEV] BC break: ReflectionMethod::invoke() expects parameter1to be object, string given From: lauri.kentta@gmail.com (=?UTF-8?Q?Lauri_Kentt=C3=A4?=) On 2016-08-23 16:20, Alexander Lisachenko wrote: > > Ok, how can I invoke Parent::whoami() with reflection and get exactly > "Child" as an output? > > class Parent { > public static function whoami() { > echo static::class; > } > } > > class Child extends Parent { > public static function whoami() { > echo "Don't call me now!'; > parent::whoami(); > } > } Could you do it without reflection, then? I don't think so. Thus, I think your "use case" is broken by design. If you need to call Parent::whoami with the Child scope, maybe you shouldn't override the method in Child class at all. If this kind of functionality is generally needed, maybe it could be borrowed from C++: obj_b->A::whoami(); Translated to PHP/Reflection: new ReflectionMethod("B", "A::whoami")->invoke(); -- Lauri Kenttä