Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:54802 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 97931 invoked from network); 22 Aug 2011 18:38:48 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 22 Aug 2011 18:38:48 -0000 Authentication-Results: pb1.pair.com header.from=smalyshev@sugarcrm.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=smalyshev@sugarcrm.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain sugarcrm.com designates 67.192.241.133 as permitted sender) X-PHP-List-Original-Sender: smalyshev@sugarcrm.com X-Host-Fingerprint: 67.192.241.133 smtp133.dfw.emailsrvr.com Linux 2.6 Received: from [67.192.241.133] ([67.192.241.133:41870] helo=smtp133.dfw.emailsrvr.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 90/80-28566-632A25E4 for ; Mon, 22 Aug 2011 14:38:47 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp13.relay.dfw1a.emailsrvr.com (SMTP Server) with ESMTP id 400283D055F; Mon, 22 Aug 2011 14:38:44 -0400 (EDT) X-Virus-Scanned: OK Received: by smtp13.relay.dfw1a.emailsrvr.com (Authenticated sender: smalyshev-AT-sugarcrm.com) with ESMTPSA id C49CB3D0174; Mon, 22 Aug 2011 14:38:43 -0400 (EDT) Message-ID: <4E52A232.6050804@sugarcrm.com> Date: Mon, 22 Aug 2011 11:38:42 -0700 Organization: SugarCRM User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:6.0) Gecko/20110812 Thunderbird/6.0 MIME-Version: 1.0 To: Mads Lie Jensen CC: "internals@lists.php.net" References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] is_a() triggers __autoload() in 5.3.7 From: smalyshev@sugarcrm.com (Stas Malyshev) Hi! On 8/21/11 11:22 PM, Mads Lie Jensen wrote: > Ah, I now see that it only happens when trying to check something which > is not actually an object: > > > function __autoload($class) { > echo "Would load: " . $class . PHP_EOL; > } > > $var = "test"; > var_dump(is_a($var, 'B')); > > $obj = new Stdclass; > var_dump(is_a($obj, 'C')); > > ?> Not a bug. $var is interpreted as a class name. To know if one class extends another, the class in question (first one) should be loaded. There's no need to load the second one since if it's unknown nothing can be instance of it and existing classes can not extend it. -- Stanislav Malyshev, Software Architect SugarCRM: http://www.sugarcrm.com/ (408)454-6900 ext. 227