Bug #77681 [NEW]: Typecasting with null coalescing operator and ArrayAccess

From: Date: Thu, 28 Feb 2019 16:36:05 +0000
Subject: Bug #77681 [NEW]: Typecasting with null coalescing operator and ArrayAccess
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-219767@lists.php.net to get a copy of this message
From: palmer dot andy at gmail dot com Operating system: PHP version: 7.3.2 Package: Scripting Engine problem Bug Type: Bug Bug description:Typecasting with null coalescing operator and ArrayAccess Description: ------------ This is very similar to https://bugs.php.net/bug.php?id=71731 - the only difference being that I am typecasting. It seems when typecasting is used, offsetExists is never called. It doesn't matter whether I try to typecast to string or int. Test script: --------------- <?php $data = new class implements \ArrayAccess { public function offsetExists($offset) { echo "offsetExists\n"; } public function offsetGet($offset) { echo "offsetGet\n"; } public function offsetSet($offset, $value) { } public function offsetUnset($offset) { } }; echo "null coalescing operator:\n"; $data['foo'] ?? null; echo "null coalescing operator (typecast):\n"; (int)$data['foo'] ?? null; Expected result: ---------------- null coalescing operator: offsetExists null coalescing operator (typecast): offsetExists Actual result: -------------- null coalescing operator: offsetExists null coalescing operator (typecast): offsetGet -- Edit bug report at https://bugs.php.net/bug.php?id=77681&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=77681&r=trysnapshot54 Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=77681&r=trysnapshot55 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=77681&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=77681&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=77681&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=77681&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=77681&r=needscript Try newer version: https://bugs.php.net/fix.php?id=77681&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=77681&r=support Expected behavior: https://bugs.php.net/fix.php?id=77681&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=77681&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=77681&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=77681&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=77681&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=77681&r=dst IIS Stability: https://bugs.php.net/fix.php?id=77681&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=77681&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=77681&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=77681&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=77681&r=mysqlcfg

« previous php.bugs (#219767) next »