Req #76841 [Com]: simple breaking structure for better code.
| From: | leon at valkenb dot org | Date: | Thu, 13 Sep 2018 20:34:15 +0000 |
| Subject: | Req #76841 [Com]: simple breaking structure for better code. | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-217038@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=76841&edit=1
ID: 76841
Comment by: leon at valkenb dot org
Reported by: leon at valkenb dot org
Summary: simple breaking structure for better code.
Status: Wont fix
Type: Feature/Change Request
Package: *General Issues
PHP Version: Next Minor Version
Block user comment: N
Private report: N
New Comment:
do..while works yes, but the statements do not reflect the purpose of the code.
In my opinion the language fails as soon as you execute up in basic procedural code.
Or the language statements don't reflect the purpose in which they were used.
do..while and for imply that there is something that needs to be done more than once.
switch implies there is a single condition that has multiple options.
No matter what others i'm missing, you know that it's not going to reflect the intent of
the developer in this situation.
And ill iterate, i hate goto, not my life.
Previous Comments:
------------------------------------------------------------------------
[2018-09-13 20:24:08] leon at valkenb dot org
Not a function.
A function has to be placed somewhere else in the code. And a nested function needs to be called
after the declaration.
Both of these require developers to have to leave the simple procedure that are reading, then find
this function, then read it, then go back to the code.
This is easy enough to do, but i can attribute hours per week of my time doing this. For some really
really basic shit too.
I don't hate my life, but i do hate the goto statement.
So this is the combination of both.
All i want a super simple bit of procedural code to be just as simple to read.
I could also do the same logic with nested if statements or other logic. But all of this, as basic
as it is, is still overkill.
------------------------------------------------------------------------
[2018-09-04 23:40:17] requinix@php.net
do..while(false) is a common idiom across all programming languages.
------------------------------------------------------------------------
[2018-09-04 23:28:22] chx@php.net
This is called a function. http://php.net/manual/en/functions.user-defined.php
function foobar() {
if (!check1()) {
return;
}
if (!check2()) {
return;
}
baz();
}
You could also throw exceptions etc
------------------------------------------------------------------------
[2018-09-04 23:23:23] leon at valkenb dot org
Description:
------------
I'd like to see something like this in PHP (and all languages)
procedure{
// Check simple statement
if ($a = $b){
break;
}
// Check complex statement
if ( ($a != $b) && ($c > $b) ) {
break;
}
// All checks succeed. Do something.
something();
}
I write a good amount of code, and one of the annoyng things is not being able to simply create a
process that can be broken out of without a loop.
Often i will use a switch / case, but this is not a tidy solution since there is oten no requirement
for a case.
Test script:
---------------
procedure{ // or could be just proc. I couldn't think of a better word
// Check simple statement
if ($a = $b){
break;
}
// Check complex statement
if ( ($a != $b) && ($c > $b) ) {
break;
}
// All checks succeed. Do something.
print "Hello"
}
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=76841&edit=1