php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #43958 class name added into the error message
Submitted: 2008-01-29 03:24 UTC Modified: 2008-09-02 09:46 UTC
Votes:5
Avg. Score:2.6 ± 1.2
Reproduced:4 of 4 (100.0%)
Same Version:3 (75.0%)
Same OS:2 (50.0%)
From: sv4php at fmethod dot com Assigned: dmitry (profile)
Status: Closed Package: Scripting Engine problem
PHP Version: 5.2.5 OS: Windows XP
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: sv4php at fmethod dot com
New email:
PHP Version: OS:

 

 [2008-01-29 03:24 UTC] sv4php at fmethod dot com
Description:
------------
IMPORTANT: DON'T MARK THIS BOGUS (like 43894) BEFORE READING *CAREFULLY* THE DESCRIPTION AND EXPECTED RESULTS.

Run the snippet. It should produce two warnings. But the include
function is inexplicably prefixed with my class name.

Reproduce code:
---------------
class MyClass 
{
	static public function loadCode($p) {
		return include $p;
	}
}

MyClass::loadCode('file-which-does-not-exist-on-purpose.php');

Expected result:
----------------
Warning: include(file-which-does-not-exist-on-purpose.php) [function.include]: ...

Warning: include() [function.include]: ...


Actual result:
--------------
Warning: MyClass::include(file-which-does-not-exist-on-purpose.php) [function.MyClass-include]: ...

Warning: MyClass::include() [function.include]: ...

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2008-01-29 07:35 UTC] derick@php.net
Like due to namespaces... but that can only happen if you're running PHP 5.3. Did you fill in the wrong version?
 [2008-01-29 07:51 UTC] sv4php at fmethod dot com
Hi Derick, no, it's 5.2.5 stable official Win32 binary build, 100% (just made sure again).

PHP Version 5.2.5; Windows NT SV 5.1 build 2600; Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

Also I believe I tested this with earlier 5.x builds and it was like that again, but I'm lazy to check again. Let me know if I have to, I can do that.

Also notice there's no namespace used or defined in the example (and the namespace is not "php", but my class name, which makes no sense to me).
 [2008-01-29 07:54 UTC] derick@php.net
I can not reproduce this btw....
 [2008-01-29 08:18 UTC] sv4php at fmethod dot com
Hi, I reproduced this on a 5.3 nightly just now (on XP), on 5.2.5 (on XP), and here's a live link to a 5.2.1 (on Linux, CentOS):

http://www.fmethod.com/include_fail.php

This is the same exact example, but I added phpversion() call.

Note for the archives: I'll remove this link in few days.
 [2008-01-29 08:50 UTC] jck_true at hotmail dot com
PHP Version 5.2.3
Build date: May 31 2007 09:36:39
Windows XP Profesional SP2

Reproduced
 [2008-01-29 11:30 UTC] kissifrot at gmail dot com
Reproduces with PHP 5.2.5 on Windows Vista too

PHP Version 5.2.5; Windows NT 6.0 build 6000; Zend Engine v2.2.0,
Copyright (c) 1998-2007 Zend Technologies

This happens with require function too
 [2008-02-01 22:32 UTC] jani@php.net
Exactly why it shouldn't print the class in which this happens?
 [2008-02-02 08:37 UTC] sv4php at fmethod dot com
'Exactly why it shouldn't print the class in which this happens?'

Four solid reasons:

1. Because running a method in the class is not the same as defining a method for the class.

2. Replace 'include $p' with 'file_get_contents($p)' above, it does NOT print the class (and it shouldn't).

3. If you have html_errors on, it prints a link that directs you to the manual for method "include" in class "MyClass", which doesn't exist.

4. For us wild experimenters, makes re-routing errors in error handlers less trivial, since the output is wrong...
 [2008-09-02 09:46 UTC] dmitry@php.net
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.


 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Nov 21 12:01:29 2024 UTC