From:             igordonin at gmail dot com
Operating system: Windows XP SP2
PHP version:      5.2.5
PHP Bug Type:     Scripting Engine problem
Bug description:  isset detects an array item that var_dump does not.

Description:
------------
Development Environment is PHP 5.2.5, Apache 2.2.

When requesting PHP to unset an array item, there's a fatal error:

Fatal error: Cannot unset string offsets in C:\[hidden]\index.php on line
147

When I var_dump the array variable, the array item is not show as part of
that array, but the unset array item command is inside a if
(isset($variable["ArrayName"])) { ... which means that the item has to
exist in order for the unset to occur.

-----

On my production enviroment, though, I'm running PHP Version 4.3.9, with
Apache Handler 2.0.52(Oracle) | API Version 20020903, and it does not cause
a Fatal Error, but the error is still there. Here's the URL:
http://helpdesk.mozart.com.br/public/index.php
-> Try to connect with anything. It matters not, I think.

If this is not a bug, I do apologize. It's just that I've checked this
code so many times and I can't find anything wrong ...

Thanks in advance.

Reproduce code:
---------------
                # 1. Execute Query
                $Query["Try_Login"] = Query_Repository("Try_Login", 0, 2, 0);
                
echo "<br><br> This is the var_dump for array \$Query: <br>";
var_dump($Query);
echo "<br><br>";

if (isset( $Query["Try_Login"]["Error"] )) { echo
"<br><br>\$Query[\"Try_Login\"][\"Error\"] is set as: \"" .
$Query["Try_Login"]["Error"] . "\".<br><br>"; }
die();

Here are the URLs for the functions that you might need to take a look at.
I saved them as txt so you may check them out.

Query_Repository:
http://helpdesk.mozart.com.br/public/query_repository.txt

Request_Value:
http://helpdesk.mozart.com.br/public/request_value.txt

validate_input:
http://helpdesk.mozart.com.br/public/validate_input.txt

Expected result:
----------------
$Query["Try_Login"] was supposed to be set only as string, either with
"conn_err" or "conn_ok". That's all var_dump really shows, and that's what
it's supposed to be ...

Actual result:
--------------
... but it was also supposed to not have an ["Error"] array Item. It's not
shown while using var_dump, but "isset" returns true, and it's value is set
to string "c". Still, I cannot unset it for it may produce a fatal error.

Fatal error: Cannot unset string offsets in C:\[hidden]\index.php on line
147

-- 
Edit bug report at http://bugs.php.net/?id=44863&edit=1
-- 
Try a CVS snapshot (PHP 5.2): 
http://bugs.php.net/fix.php?id=44863&r=trysnapshot52
Try a CVS snapshot (PHP 5.3): 
http://bugs.php.net/fix.php?id=44863&r=trysnapshot53
Try a CVS snapshot (PHP 6.0): 
http://bugs.php.net/fix.php?id=44863&r=trysnapshot60
Fixed in CVS:                 http://bugs.php.net/fix.php?id=44863&r=fixedcvs
Fixed in release:             
http://bugs.php.net/fix.php?id=44863&r=alreadyfixed
Need backtrace:               http://bugs.php.net/fix.php?id=44863&r=needtrace
Need Reproduce Script:        http://bugs.php.net/fix.php?id=44863&r=needscript
Try newer version:            http://bugs.php.net/fix.php?id=44863&r=oldversion
Not developer issue:          http://bugs.php.net/fix.php?id=44863&r=support
Expected behavior:            http://bugs.php.net/fix.php?id=44863&r=notwrong
Not enough info:              
http://bugs.php.net/fix.php?id=44863&r=notenoughinfo
Submitted twice:              
http://bugs.php.net/fix.php?id=44863&r=submittedtwice
register_globals:             http://bugs.php.net/fix.php?id=44863&r=globals
PHP 4 support discontinued:   http://bugs.php.net/fix.php?id=44863&r=php4
Daylight Savings:             http://bugs.php.net/fix.php?id=44863&r=dst
IIS Stability:                http://bugs.php.net/fix.php?id=44863&r=isapi
Install GNU Sed:              http://bugs.php.net/fix.php?id=44863&r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=44863&r=float
No Zend Extensions:           http://bugs.php.net/fix.php?id=44863&r=nozend
MySQL Configuration Error:    http://bugs.php.net/fix.php?id=44863&r=mysqlcfg

Reply via email to