php 字符串最大長度,PHP中的字符串的最大长度是多少?

单个字符串变量本身没有架构限制。

编辑:作为用户@Pacerier评论下面,PHP手册现在说:

Note: string can be as large as 2GB.

(当我在2010年第一次回答这个问题时,注意wasn’t in the manual)

但是,PHP脚本在给定脚本执行中为所有变量分配的内存总量有限制,因此这也有效地限制了单个字符串变量的长度。

此限制是php.ini配置文件中的memory_limit伪指令。内存限制在PHP 5.2中默认为128MB,在早期版本中为8MB。

如果你没有在你的php.ini文件中指定一个内存限制,它使用默认值,它被编译成PHP二进制。理论上,您可以修改源并重建PHP以更改此默认值。

如果在php.ini文件中指定-1作为内存限制,它将停止检查并允许您的脚本使用与操作系统将分配的内存一样多的内存。这仍然是一个实际的限制,但取决于系统资源和架构。

从@ c2注释:

这里是一个测试:

-- limit memory usage to 1MB

ini_set('memory_limit', 1024*1024);

-- initially, PHP seems to allocate 768KB for basic operation

printf("memory: %d\n", memory_get_usage(true));

$str = str_repeat('a', 255*1024);

echo "Allocated string of 255KB\n";

-- now we have allocated all of the 1MB of memory allowed

printf("memory: %d\n", memory_get_usage(true));

-- going over the limit causes a fatal error, so no output follows

$str = str_repeat('a', 256*1024);

echo "Allocated string of 256KB\n";

printf("memory: %d\n", memory_get_usage(true));

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值