Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:43780 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 70358 invoked from network); 26 Apr 2009 21:28:38 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 26 Apr 2009 21:28:38 -0000 Authentication-Results: pb1.pair.com header.from=pablo@pablo.com.mx; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=pablo@pablo.com.mx; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain pablo.com.mx from 209.85.217.175 cause and error) X-PHP-List-Original-Sender: pablo@pablo.com.mx X-Host-Fingerprint: 209.85.217.175 mail-gx0-f175.google.com Received: from [209.85.217.175] ([209.85.217.175:50923] helo=mail-gx0-f175.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 72/EB-00271-502D4F94 for ; Sun, 26 Apr 2009 17:28:38 -0400 Received: by gxk23 with SMTP id 23so122438gxk.23 for ; Sun, 26 Apr 2009 14:28:35 -0700 (PDT) MIME-Version: 1.0 Sender: pablo@pablo.com.mx Received: by 10.150.225.17 with SMTP id x17mr8793972ybg.7.1240781309928; Sun, 26 Apr 2009 14:28:29 -0700 (PDT) Date: Sun, 26 Apr 2009 16:28:29 -0500 X-Google-Sender-Auth: ee30dbf409feeff3 Message-ID: <771f697e0904261428s678548a4w14a8270e8ecb4ceb@mail.gmail.com> To: internals@lists.php.net Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: get_called_class returns empty on spl_autoload* From: pfischer@php.net (Pablo Fischer) Hello, Was playing with get_called_class inside an autoload method that is registered via spl_autoload_register and noticed: - If I use get_called_class inside an autoload method I get an empty value from it - However the same doesn't happen if I'm not using a registered autoload method Was wondering if this is a bug, a feature or something I'm just missing :-) The code I'm using is: class Loader { public static function autoload($className) { var_dump('Calling ' . get_called_class() . ' for ' . $className); } public static function getCalledClass() { var_dump('Current class is: ' . get_called_class()); } } spl_autoload_register(array('Loader', 'autoload')); Loader::getCalledClass(); $foo = new Foo; And I get: string(24) "Current class is: Loader" string(16) "Calling for Foo" Fatal error: Class 'Foo' not found in /Users/pablo/Projects/reptilia/test.php on line 17 Thanks! -- Pablo Fischer (pablo [arroba/at] pablo.com.mx)