ID: 48278
User updated by: zyss at mail dot zp dot ua
Reported By: zyss at mail dot zp dot ua
Status: Bogus
Bug Type: Feature/Change Request
Operating System: Irrelevant
PHP Version: 5.2.9
New Comment:
It is just one of arguments, another one is that it will improve code
readability. While it is not so evident in simple examples: who cares
what to write
$foo = $bar
or
foo = bar
and all of these seems to be clear and readable. But consider more
complicated code:
while (TRUE) {
$k = strpos( $sql, $quoteChar, $j );
$escaped = false;
if ($k === false) {
break;
}
$l = $k - 1;
while ($l >= 0 && $sql{$l} == '\\') {
$l--;
$escaped = !$escaped;
}
if ($escaped) {
$j = $k + 1;
continue;
}
break;
}
Isn't it more readable without $:
while (TRUE) {
k = strpos( sql, quoteChar, j );
escaped = false;
if (k === false) {
break;
}
l = k - 1;
while (l >= 0 && sql{l} == '\\') {
l--;
escaped = !escaped;
}
if (escaped) {
j = k + 1;
continue;
}
break;
}
?
Previous Comments:
------------------------------------------------------------------------
[2009-05-14 22:06:04] [email protected]
Minimizing keystrokes never has and never will be a priority.
------------------------------------------------------------------------
[2009-05-14 22:01:10] zyss at mail dot zp dot ua
It is a matter of programmer's personal attentiveness. In your example
there is a mix of using $ and not using it. Most developers will not do
it. Besides in other languages this theoretical problem is even not
discussed. For example, as you know in C/C++ there is a de facto
standard of using CAPITAL LETTERS for constants which is enough to
distinguish them from variables. Many PHP developers follow this
concept.
>From the other side if one wanted to calculate how many key strokes
will it save to allow not to use $ prefix in a PHP project with 100000
lines of code - this number would be huge. No one will argue that PHP is
derived from C. It is evident that C language itself was created to
minimize typing (as one of its primary goals, comparing to academic
Pascal is enough to see this). So why not to follow the original path -
to avoid unneeded typing while leaving a possibility to use $ for
compatibility and in some special cases?
The same arguments can be applied to { } arrays and "in" operator.
------------------------------------------------------------------------
[2009-05-14 19:59:52] [email protected]
There are also edge cases like
$a['foo'] = 1;
$foo = 2;
echo $a[foo];
That would behave differently with optional $'s
And I like the obvious separation between constants and variables. It
avoids side-effects if someone somewhere suddenly creates a constant
that then goes and changes behaviour all over the place because of this
constants-over-variables approach.
------------------------------------------------------------------------
[2009-05-14 19:43:25] zyss at mail dot zp dot ua
It will not break stuff if defined constants will have higher priority.
In such case developer can just leave $ prefix.
It would be really great if PHP developers have an option to choose
whether to use the prefix or not. Eventually all new code will be
written without $ and there will be no conflicts.
------------------------------------------------------------------------
[2009-05-14 18:24:04] [email protected]
And it will most definitely break stuff since removing the $ would
clash with any defined constants.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/48278
--
Edit this bug report at http://bugs.php.net/?id=48278&edit=1