数组中的 PHP 字符串只返回第一个字符

标签 php

接下来的一周,我的 EDGE 互联网连接非常缓慢,令人遗憾的是非常慢,如果我没有花足够的时间研究这个问题,请原谅我,但我只是设置了一个本地服务器进行测试我通常会在 Internet 上测试的代码,但它在我的本地 LAMP 安装上似乎没有以相同的方式工作。

问题是,当我这样做时:

echo strtolower($_REQUEST['page']);

结果是这样的:

files

但是,当我这样做时:

$page['name'] = strtolower($_REQUEST['page']);
echo $page['name'];

结果是这样的:

f

不,这不是拼写错误,它始终只返回字符串的第一个字母。执行 var_dump($page) 将导致 string(5) "files",但执行 var_dump($page['name']) 将产生 string(1) "f"。我正在使用 PHP 5.2.1

这是怎么回事?

最佳答案

您几乎回答了您自己的问题。 $page 是"file"(如您的第一个 var_dump 所示)。这可能是由已弃用的 register_globals 或其手动近似引起的。鉴于此,

$page['files']

是“f”。这是因为非数字字符串被隐式转换为 0 (!)。您可以使用以下方法轻松重现:

$page = 'files';
echo $page['files'];

关于数组中的 PHP 字符串只返回第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3605772/

相关文章:

php - Paypal:处理多币种支付

php - 在 PHP 中生成随机唯一数字数组

php - 在 php 中执行 gulp 返回错误,但在 shell 中可以工作

php - 我可以将 VARCHAR(32) 用于 md5() 值吗?

javascript - 将 Javascript 数组序列化为 Laravel 缓存的 PHP 字符串

php - PUT,DELETE 数据从 Jquery 到 PHP

php - Apache/PHP 中 session 文件的位置

php - 尝试根据上一个表的选择从 2 个不同的表中获取多个 COUNT(id)

php - 多个动态组合框javascript

将目录树生成为嵌套 html 列表时的 PHP 函数错误