Re: More operators

[email protected] ("Christoph M. Becker")
Newsgroups php.general
Message-ID <[email protected]>
On 20.12.2016 at 06:47, Sam Hobbs wrote:

> In addition to the "->" and "::" operators, the following probably need
> more documentation too. I will list them followed by a comment in a
> separate line for each; note that "{$" and "${" are two operators
> (experienced PHP programmers know that I am sure).
> 
> =>
> described in Array Operators but not in the table at the top of that page

I'm not sure whether => should be regarded an operator.  It appears to
be rather a syntactic token for array-element-initializer[1] and
foreach-key[2].

> ()
> not mentioned in "Array Operators", but is an operator for arrays, correct?

Do you mean [] and/or {}?  These are called subscript operator by the
PHP language specification[3].

> ()
> type-casting; not described as an operator

These are listed in the operator precedence table (`(unset)`, `(binary)`
and the aliases are missing, though), so should probably also be
described in the operator section.

> ()
> precedence; described in "Operator Precedence" but "()" is not described
> as an operator or operators but probably should be

What is descibed in the "Operarator Precedence" section is the use of
parens to enforce a certain order of evaluation.  That is not an
operator, though.  The function call operator[4] appears to be not
documented in the "Operators" chapter.

> {$ and ${
> undocumented, barely described and they need better names

I'm not sure whether these should be called operators at all, because
they're only used inside string literals

> ....
> 
> called a token in "Function arguments" so it is not clear to me that it
> is an operator but "..." seems to have multiple uses, none adequately
> documented.

In my opinion, this is not an operator.  The usage is documented in the
"Variable-length argument lists" section[5].

> Note that also the "Assignment Operators" page has a note written 12
> years ago saying it "ought to have table of assignment operators".

Patches are certainly welcome!  For instance, via <https://edit.php.net/>.

[1]
<https://github.com/php/php-langspec/blob/master/spec/10-expressions.md#array-creation-operator>
[2]
<https://github.com/php/php-langspec/blob/master/spec/11-statements.md#the-foreach-statement>
[3]
<https://github.com/php/php-langspec/blob/master/spec/10-expressions.md#subscript-operator>
[4]
<https://github.com/php/php-langspec/blob/master/spec/10-expressions.md#function-call-operator>
[5]
<http://php.net/manual/en/functions.arguments.php#functions.variable-arg-list>

-- 
Christoph M. Becker
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.