[PHP-DEV] Bug #11447 Updated: Switch statement sensible for white-space

2001-06-20 Thread per . persson

ID: 11447
User Update by: [EMAIL PROTECTED]
Status: Open
Bug Type: Scripting Engine problem
Operating system: Linux (RedHat 6.2)
PHP Version: 4.0.4pl1
Description: Switch statement sensible for white-space

Observe that the spaces are significant.

This doesn't work:
? switch($var){ ?
  ? case alpha:
  break;
}?

This does!:
? switch($var){ ?
? case alpha:
  break;
}?

I suppose that the interpreter converts text outside ? ? to echo statements, so that 
the first code block is equivalent to:
? switch($var){
  echo '  ';
  case alpha:
  break;
}?
This code block gave the same parse error as the first one!
(Expecting T_CASE or T_DEFAULT or '}')



Previous Comments:
---

[2001-06-19 12:29:47] [EMAIL PROTECTED]
The bug is valid - if you close and reopen the PHP tags between the switch and the 
case statement, it is going to bark at you. It shouldn't.

This does not work:
? switch($var){ ?
  ? case alpha:
  break;
}?

This does:
? switch($var){
  case alpha:
  break;
}?

Why in the world would anyone do that, is a whole other issue, still they probably 
expect to be able to do just that. If they can't, we either need to document it as 
such, (thus re-classify this as documentation problem) or fix it. I do not know what 
it takes to fix that, but it is a valid report nevertheless.

Unbogusifying...


---

[2001-06-13 14:58:29] [EMAIL PROTECTED]
Which style I use, the classical style (using {}) or the alternative style (using 
: and endswitch), doesn't matter; the problem is the same.

Sniper's comment about using ? ? several times is surely justified when having 
one-line code as in his example, but when it comes to multi-line code, there is an 
issue of readability. I think that script A below is easier to read than script B. 
Don't you?

--- begin script A ---
? switch($var): ?

  ? case alpha: ?
pAlpha/p
  ? break; ?

  ? case beta: ?
pBeta/p
  ? break; ?

  ? default: ?
pDefault/p
  ? break; ?
? endswitch; ?
---  end  script A ---

--- begin script B ---
?
  switch($var):

  case alpha: ?
pAlpha/p
? break;

  case beta: ?
pBeta/p
? break;

  default: ?
pDefault/p
? break;

  endswitch; ?
---  end  script B ---


---

[2001-06-13 10:18:56] [EMAIL PROTECTED]
Use the {} instead of the : / endswitch; 
ie.

?php 

  switch ($value) {
case: ?
pAlpha/p
?php 
break; 
}

?

And anyway, using ? ? too much is really not good idea.
This is just stupid: ? some code ?? more code?? code..?



---

[2001-06-12 19:13:44] [EMAIL PROTECTED]
Section 7.4 in the FAQ is a little bit related.

Should perhaps the ending for a block of PHP-code be ? followed by any number of 
white-space characters?


---

[2001-06-12 18:51:27] [EMAIL PROTECTED]
The following script gave a parse error:

? switch($var): ?
  ? case alpha: ?
pAlpha/p
  ? break; ?

  !-- ... --

? endswitch; ?

Parse error: parse error, expecting `T_CASE' or `T_DEFAULT' or `'}'' in 
my-path/bug.php on line 2

First I thought that this was really a bug, but then, while typing this report I 
realized that non-PHP-mode characters (like the two spaces) probably are converted to 
an echo instruction, so the PHP-parser sees something like the following code:

  switch($var):
  echo '  ';
  case alpha:
echo 'pAlpha/p';
break;
  endswitch;

The parser doesn't expect anything (but PHP-mode white-space) to come between the ':' 
on line 1 and 'case' on line 3 and therefore reports parse error. Right?

For the sake of pretty-scripting, I would like this to change, but at the same time, 
now that I understand why the parser complains, I'm not sure if it should be 
changed...


---

The remainder of the comments for this report are too long.  To view the rest of the 
comments, please view the bug report online.

Full Bug description available at: http://bugs.php.net/?id=11447


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Bug #11447 Updated: Switch statement sensible for white-space

2001-06-19 Thread per . persson

ID: 11447
User Update by: [EMAIL PROTECTED]
Status: Bogus
Bug Type: Scripting Engine problem
Operating system: Linux (RedHat 6.2)
PHP Version: 4.0.4pl1
Description: Switch statement sensible for white-space

Which style I use, the classical style (using {}) or the alternative style (using 
: and endswitch), doesn't matter; the problem is the same.

Sniper's comment about using ? ? several times is surely justified when having 
one-line code as in his example, but when it comes to multi-line code, there is an 
issue of readability. I think that script A below is easier to read than script B. 
Don't you?

--- begin script A ---
? switch($var): ?

  ? case alpha: ?
pAlpha/p
  ? break; ?

  ? case beta: ?
pBeta/p
  ? break; ?

  ? default: ?
pDefault/p
  ? break; ?
? endswitch; ?
---  end  script A ---

--- begin script B ---
?
  switch($var):

  case alpha: ?
pAlpha/p
? break;

  case beta: ?
pBeta/p
? break;

  default: ?
pDefault/p
? break;

  endswitch; ?
---  end  script B ---


Previous Comments:
---

[2001-06-13 10:18:56] [EMAIL PROTECTED]
Use the {} instead of the : / endswitch; 
ie.

?php 

  switch ($value) {
case: ?
pAlpha/p
?php 
break; 
}

?

And anyway, using ? ? too much is really not good idea.
This is just stupid: ? some code ?? more code?? code..?



---

[2001-06-12 19:13:44] [EMAIL PROTECTED]
Section 7.4 in the FAQ is a little bit related.

Should perhaps the ending for a block of PHP-code be ? followed by any number of 
white-space characters?


---

[2001-06-12 18:51:27] [EMAIL PROTECTED]
The following script gave a parse error:

? switch($var): ?
  ? case alpha: ?
pAlpha/p
  ? break; ?

  !-- ... --

? endswitch; ?

Parse error: parse error, expecting `T_CASE' or `T_DEFAULT' or `'}'' in 
my-path/bug.php on line 2

First I thought that this was really a bug, but then, while typing this report I 
realized that non-PHP-mode characters (like the two spaces) probably are converted to 
an echo instruction, so the PHP-parser sees something like the following code:

  switch($var):
  echo '  ';
  case alpha:
echo 'pAlpha/p';
break;
  endswitch;

The parser doesn't expect anything (but PHP-mode white-space) to come between the ':' 
on line 1 and 'case' on line 3 and therefore reports parse error. Right?

For the sake of pretty-scripting, I would like this to change, but at the same time, 
now that I understand why the parser complains, I'm not sure if it should be 
changed...


---


Full Bug description available at: http://bugs.php.net/?id=11447


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Bug #11447: Switch statement sensible for white-space

2001-06-18 Thread per . persson

From: [EMAIL PROTECTED]
Operating system: Linux (RedHat 6.2)
PHP version:  4.0.4pl1
PHP Bug Type: Scripting Engine problem
Bug description:  Switch statement sensible for white-space

The following script gave a parse error:

? switch($var): ?
  ? case alpha: ?
pAlpha/p
  ? break; ?

  !-- ... --

? endswitch; ?

Parse error: parse error, expecting `T_CASE' or `T_DEFAULT' or `'}'' in 
my-path/bug.php on line 2

First I thought that this was really a bug, but then, while typing this report I 
realized that non-PHP-mode characters (like the two spaces) probably are converted to 
an echo instruction, so the PHP-parser sees something like the following code:

  switch($var):
  echo '  ';
  case alpha:
echo 'pAlpha/p';
break;
  endswitch;

The parser doesn't expect anything (but PHP-mode white-space) to come between the ':' 
on line 1 and 'case' on line 3 and therefore reports parse error. Right?

For the sake of pretty-scripting, I would like this to change, but at the same time, 
now that I understand why the parser complains, I'm not sure if it should be changed...



-- 
Edit Bug report at: http://bugs.php.net/?id=11447edit=1



-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Bug #11447 Updated: Switch statement sensible for white-space

2001-06-18 Thread per . persson

ID: 11447
User Update by: [EMAIL PROTECTED]
Status: Open
Bug Type: Scripting Engine problem
Operating system: Linux (RedHat 6.2)
PHP Version: 4.0.4pl1
Description: Switch statement sensible for white-space

Section 7.4 in the FAQ is a little bit related.

Should perhaps the ending for a block of PHP-code be ? followed by any number of 
white-space characters?


Previous Comments:
---

[2001-06-12 18:51:27] [EMAIL PROTECTED]
The following script gave a parse error:

? switch($var): ?
  ? case alpha: ?
pAlpha/p
  ? break; ?

  !-- ... --

? endswitch; ?

Parse error: parse error, expecting `T_CASE' or `T_DEFAULT' or `'}'' in 
my-path/bug.php on line 2

First I thought that this was really a bug, but then, while typing this report I 
realized that non-PHP-mode characters (like the two spaces) probably are converted to 
an echo instruction, so the PHP-parser sees something like the following code:

  switch($var):
  echo '  ';
  case alpha:
echo 'pAlpha/p';
break;
  endswitch;

The parser doesn't expect anything (but PHP-mode white-space) to come between the ':' 
on line 1 and 'case' on line 3 and therefore reports parse error. Right?

For the sake of pretty-scripting, I would like this to change, but at the same time, 
now that I understand why the parser complains, I'm not sure if it should be 
changed...


---


Full Bug description available at: http://bugs.php.net/?id=11447


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]