我在PHP5中编写了一个foreach循环。 这是脚本:
foreach(range('A','Z') as $char) // line 1
{ // line 2
echo strtoupper($char)strtolower($char); // line 3
} // line 4
我收到此错误消息 解析错误:解析错误,第3行的testing.php中出现意外的T_STRING
我花了差不多一个小时才弄清楚我应该在这两个函数之间添加一个点:
echo strtoupper($char).strtolower($char);
所以我无法区分这两行代码:
echo strtoupper($char).strtolower($char);
echo strtoupper($char)strtolower($char);
答案 0 :(得分:13)
'。'是一个连接运算符。它返回其左右参数的串联。
例如:
'Hello ' . 'world!'
给出:
'Hello world!'
在没有任何操作符的情况下彼此相邻的两个函数是错误的。
答案 1 :(得分:4)
PHP
的语法要求echo
的参数为expression
或以逗号分隔的一组expressions
。
现在strtoupper($char)
本身就是一个完整的表达。在此表达式之后,PHP期望看到一个表达式分隔符,它可以是comma
,dot
甚至是semi-colon
,但是当它找到string
(strtolower
)时它抱怨。
所以
strtoupper($char)strtolower($char);
不是有效的表达式,但它们是:
strtoupper($char),strtolower($char);
strtoupper($char).strtolower($char);
strtoupper($char);strtolower($char);
但是在你的情况下,最后一个不服务于目的,因为它只打印26个大写字母而不打印小写字母。