栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

http://php.net/manual/en/language.types.string.php说:

注意:自PHP 7.0.0起,对64位版本中的字符串长度没有特殊限制。在32位版本和较早版本中,字符串最大可以为2GB(最大2147483647字节)

在PHP 5.x中,字符串被限制为2 31 -1个字节,因为内部代码将长度记录为带符号的32位整数。


您可以输入整个文件的内容,例如使用

file_get_contents()

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

此限制是

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

如果您未在php.ini文件中指定内存限制,它将使用默认值,该默认值将编译到PHP二进制文件中。从理论上讲,您可以修改源代码并重建PHP以更改此默认值。

如果您

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


来自@ c2的评论:

这是一个测试:

<?php// limit memory usage to 1MB ini_set('memory_limit', 1024*1024);// initially, PHP seems to allocate 768KB for basic operationprintf("memory: %dn",  memory_get_usage(true));$str = str_repeat('a',  255*1024);echo "Allocated string of 255KBn";// now we have allocated all of the 1MB of memory allowedprintf("memory: %dn",  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 256KBn";printf("memory: %dn",  memory_get_usage(true));


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/421632.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号