php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #38487 Improving switch statement
Submitted: 2006-08-18 02:07 UTC Modified: 2015-09-07 00:47 UTC
Votes:4
Avg. Score:3.2 ± 1.5
Reproduced:4 of 4 (100.0%)
Same Version:3 (75.0%)
Same OS:3 (75.0%)
From: dtyschenko at soft-ukraine dot com Assigned:
Status: Wont fix Package: *General Issues
PHP Version: 5.1.5 OS:
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: dtyschenko at soft-ukraine dot com
New email:
PHP Version: OS:

 

 [2006-08-18 02:07 UTC] dtyschenko at soft-ukraine dot com
Description:
------------
I think use switch in case like this will be very useful  

Reproduce code:
---------------
<?php
	switch ($a instanceof) {
		case Foo : echo "Foo"; break;
		case Bar : echo "Bar"; break;
		default : echo "Unknown" : break;
	}
?>


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2015-09-06 18:27 UTC] david dot proweb at gmail dot com
It'll be a problem because of PHP structure. But maybe use/create a keyword to receive the case value.

    switch ($a instanceof case) {
        case Foo : echo "Foo"; break;
        case Bar : echo "Bar"; break;
        default : echo "Unknown" : break;
    }
 [2015-09-07 00:47 UTC] requinix@php.net
-Status: Open +Status: Wont fix -Package: Feature/Change Request +Package: *General Issues
 [2015-09-07 00:47 UTC] requinix@php.net
I'm going to mark this wontfix, on the original proposal, for three reasons:
1. It's a very specific use case
2. I imagine it would require a specific syntax "exception" in the PHP parser to support a switch+interfaceof+case class names
3. You can already do this:

switch (true) {
  case $a instanceof Foo: echo "Foo"; break;
  case $a instanceof Bar: echo "Bar"; break;
  default: echo "Unknown"; break;
}

Regarding using "case" in the condition, I think that's more feasible. @david.proweb, if you'd like to push for this feature then I suggest bringing it up on the internals mailing list for discussion.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Thu Jul 03 10:01:33 2025 UTC