#35050 [Opn-Asn]: PHP 5 do not recognize Capital I letters in function and class method names

2005-11-01 Thread derick
 ID:   35050
 Updated by:   [EMAIL PROTECTED]
 Reported By:  satanistlav at mail dot ru
-Status:   Open
+Status:   Assigned
 Bug Type: Scripting Engine problem
 Operating System: Linux
 PHP Version:  5.0.5
-Assigned To:  
+Assigned To:  dmitry
 New Comment:

I can reproduce this with the following short script:

?php
class foo
{
function IsHere()
{
echo here\n;
}
}

echo setlocale(LC_ALL, 'tr_TR'), \n;

$f = new foo();
$f-IsHere();
?

(You need to have the tr_TR locale installed for this).

It does work properly with PHP 5.1 actually, and it has to to with the
zend_str_tolower() function which uses the tolower() libc call, which
uses the locale. As in Turkish the I does not lowercase to i you can
get weird things. This is why we should get rid of case insensitive
function names.

It also works with normal function names (instead of classes' methods)



Previous Comments:


[2005-11-01 15:02:31] satanistlav at mail dot ru

http://www.yda.com.tr/info.php



[2005-11-01 14:57:02] [EMAIL PROTECTED]

What is your locale set to? Can you provide a link to phpinfo() output?



[2005-11-01 14:45:44] satanistlav at mail dot ru

Description:

The Linux hosting server I use recently upgraded PHP Version to 5.0.4.
After upgrade all function and and class methods those had capital I
letter in the function names became unrecognized by PHP. No such
problem I had in previouse version of PHP, and no problem in my local
server (WinXP, Apache 2, PHP v5.0.5)

Reproduce code:
---
//Part of mail class
.
/**
 * Sets Mailer to send message using SMTP.
 * @return void
 */
   function IsSMTP() {
   $this-Mailer = smtp;
   }

/**
 * Sets Mailer to send message using PHP mail() function.
 * @return void
 */
function IsMail() {
$this-Mailer = mail;
}
.
/*  I used class methods ***/
 .
 $mailer-IsHtml(true);
 $mailer-IsMail();
 .

Expected result:

Execution of class method is expected

Actual result:
--
/* I got error /
Fatal error: Call to undefined method PHPMailer::IsHtml() in  





-- 
Edit this bug report at http://bugs.php.net/?id=35050edit=1


#35050 [Opn-Asn]: PHP 5 do not recognize Capital I letters in function and class method names

2005-11-01 Thread derick
 ID:   35050
 Updated by:   [EMAIL PROTECTED]
 Reported By:  satanistlav at mail dot ru
-Status:   Open
+Status:   Assigned
 Bug Type: Scripting Engine problem
 Operating System: Linux
-PHP Version:  5.0.5
+PHP Version:  5CVS
 Assigned To:  dmitry
 New Comment:

Actually, PHP 5.1 gives the same broken result... but it works in 4.4.
Yes, we confirm there is a bug here - not sure how to fix it though)
Assigning to Dmitry for now. (Please don't switch the bug back to
Open)


Previous Comments:


[2005-11-01 15:17:54] satanistlav at mail dot ru

I have uploaded your code to the server and I still have the same
error! http://www.yda.com.tr/test.php



[2005-11-01 15:14:14] satanistlav at mail dot ru

I have multilingual site. Locales are set to en_US.ISO-8859-1 in
Enlgish side of the site and tr_TR.ISO-8859-9 in Turkish for LC_ALL



[2005-11-01 15:12:29] [EMAIL PROTECTED]

I can reproduce this with the following short script:

?php
class foo
{
function IsHere()
{
echo here\n;
}
}

echo setlocale(LC_ALL, 'tr_TR'), \n;

$f = new foo();
$f-IsHere();
?

(You need to have the tr_TR locale installed for this).

It does work properly with PHP 5.1 actually, and it has to to with the
zend_str_tolower() function which uses the tolower() libc call, which
uses the locale. As in Turkish the I does not lowercase to i you can
get weird things. This is why we should get rid of case insensitive
function names.

It also works with normal function names (instead of classes' methods)




[2005-11-01 15:02:31] satanistlav at mail dot ru

http://www.yda.com.tr/info.php



[2005-11-01 14:57:02] [EMAIL PROTECTED]

What is your locale set to? Can you provide a link to phpinfo() output?



The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/35050

-- 
Edit this bug report at http://bugs.php.net/?id=35050edit=1