黑马程序员技术交流社区

标题: PHP小白要懂:内存的栈区、堆区、全局区、代码区 [打印本页]

作者: huawei    时间: 2016-11-29 18:17
标题: PHP小白要懂:内存的栈区、堆区、全局区、代码区
本帖最后由 沈唁 于 2017-8-11 12:12 编辑




学PHP编程,经常要跟内存打交道,比如什么释放内存,在内存的栈区,堆区运行,什么放在哪个区运行完即销毁。经常让小白一头雾水,对PHP学习望而却步。本文就来给大家讲讲内存的栈区、堆区、全局区、代码区的区别,让大家通过此文短短几行搞定内存栈区、堆区、全局区、代码区!

1、首先要记住一句话,内存一般分为:栈区 堆区 全局区 代码区。
2、他们有什么区别呢,只要我们从各部分的作用,就能明确各自的区别了。

什么是栈区:
什么是堆区?
什么是全局区?
什么是代码区?

现在清楚了吧!如果怕以后学习过程中有遗忘,强烈建议将此文收藏起来,记得回头经常来看看!








作者: piliyouxia121    时间: 2016-12-1 16:49
谢谢分享
作者: 肖肖肖    时间: 2016-12-4 20:35
66666666666666666666
作者: aaron1234    时间: 2016-12-7 00:39
支持下
作者: songping9218    时间: 2016-12-7 21:35
内存的栈区、堆区、全局区、代码区
作者: zl00733    时间: 2016-12-12 14:07
阿斯达所多撒多
作者: hp_eckj_luox    时间: 2016-12-13 17:27
内存的栈区、堆区、全局区、代码区 [修改]不高心   心塞
作者: 雨落风停    时间: 2016-12-14 16:07
哈哈啊哈哈哈哈哈哈哈
作者: zhuqixiong222    时间: 2016-12-14 22:57
键盘桥栏。月薪过万
作者: zhuqixiong222    时间: 2016-12-14 22:59
键盘敲烂月薪过万
作者: Rakishly    时间: 2016-12-15 13:49
栈区、堆区、全局区、代码区 [修改]
作者: xw1985520    时间: 2016-12-17 17:09
sddddddddddddddddddddddddddd
作者: 踏上PHP征程    时间: 2016-12-18 13:20
谢谢分享 嘻嘻嘻嘻嘻嘻
作者: 小阿狸    时间: 2016-12-19 21:38
v的试试vs
作者: elvisv    时间: 2016-12-19 22:55
键盘敲烂月薪过万
作者: chen521    时间: 2016-12-21 08:40
很想了解
作者: 秋水他爸    时间: 2016-12-21 16:13

作者: 845414233    时间: 2016-12-22 01:19
hello world!!!!!!!!!!!!!!!!
作者: 290422624    时间: 2016-12-22 14:14
跟着大神打天下
作者: chenzt321    时间: 2016-12-23 09:53
谢谢分享
作者: chenzt321    时间: 2016-12-23 09:55
谢谢分享666
作者: kokocool    时间: 2016-12-28 16:32
我是小白,前来看看
作者: 赵先生    时间: 2016-12-28 23:37
快来学习哈!!!!!
作者: www3238    时间: 2016-12-29 20:55
拜大神,6666666666666
作者: web360    时间: 2017-1-3 10:06
非常感谢,搞明白这些,很多东西都能搞明白了
作者: VC丶万人敬仰    时间: 2017-1-3 17:21
谢谢分享!!!!
作者: zdw1127    时间: 2017-1-3 19:27
非常水赶紧写谢谢谢了。真的感谢
作者: 吉林小博    时间: 2017-1-5 15:50
好好学习学习
作者: xxiaogongchang    时间: 2017-1-6 19:54
看看22222222
作者: xxiaogongchang    时间: 2017-1-6 19:55
看看22222222
作者: skykiah    时间: 2017-1-7 19:53

谢谢分享
作者: 邓燮    时间: 2017-1-10 22:39

内存的栈区、堆区、全局区、代码区
作者: xiami23king    时间: 2017-1-16 12:41
66666666666666666666
作者: 阳阳0910    时间: 2017-1-16 15:30
学PHP编程,经常要跟内存打交道,比如什么释放内存,在内存的栈区,堆区运行,什么放在哪个区运行完即销毁。经常让小白一头雾水,对PHP学习望而却步。本文
作者: 阳阳0910    时间: 2017-1-16 15:31
学PHP编程,经常要跟内存打交道,比如什么释放内存,在内存的栈区,堆区运行,什么放在哪个区运行完即销毁。经常让小白一头雾水,对PHP学习望而却步。本文
作者: 853873548    时间: 2017-1-18 09:29
1111111111
作者: itman_123    时间: 2017-1-18 16:03
我要学习
作者: phpchengxuyuan    时间: 2017-1-19 22:13
5646456464646546546465
作者: PHPjava    时间: 2017-1-20 23:26
随时随地多多多多多多多
作者: PHPjava    时间: 2017-1-21 10:42
dddddddddddddddddddddddddddd
作者: 1317181388    时间: 2017-2-3 01:19
感谢楼主分享
作者: 707621521    时间: 2017-2-6 15:20
计算机内存的原理啊,补脑下
作者: xiezi1772    时间: 2017-2-9 15:31
顶顶顶顶顶顶顶顶顶顶顶顶
作者: 哈哈哈哈哈11    时间: 2017-2-9 21:41
哈哈哈哈哈哈哈
作者: 红尘痴儿女    时间: 2017-2-10 12:06
666666666666666666666666666
作者: 646547989    时间: 2017-2-13 10:02
什么是栈区:
作者: 嘎啦儿    时间: 2017-2-15 15:12
代码查看~~~
作者: fjdaslfjk    时间: 2017-2-16 11:36
内存的栈区、堆区、全局区、代码区
作者: 用户名不得小    时间: 2017-2-17 22:38
explode和split两个函数的作用很像,都是把字符串转换成数组。

一、explode
//示例 1
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

// 示例 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
从上面的例子可以看出,explode()生成的数组是有对应的顺序的。注意的是,如果第一个参数为空字符串的话,就会产生Warning。
var_dump( explode('','asdasd') );
//Warning: explode(): Empty delimiter in /tmp/e80c9663-e392-4f81-8347-35726052678f/code on line 3
//bool(false)

二、split

split的第一个参数为正则表达式,也就是说,如果想要匹配特殊字符,需要转义一下。
本帖隐藏的内容


$arr='2016\8\11';
$rearr = split ('[/\]', $arr);
var_dump($rearr)

/*
array(3) {
  [0]=>
  string(4) "2016"
  [1]=>
  string(1) "8"
  [2]=>
  string(2) "11"
}
*/
split — 用正则表达式将字符串分割到数组中,但split函数并不支持PHP 7.
$date = "04/30/1973";
list($month, $day, $year) = split ('[/\]', $date);
echo "Month: $month; Day: $day; Year: $year<br />\n";

//PHP 7 下的报错
Fatal error: Uncaught Error: Call to undefined function split() in /tmp/4d38c290-b4cb-43f5-846a-9fa90784a090/code:4
Stack trace:
#0 {main}
  thrown in /tmp/4d38c290-b4cb-43f5-846a-9fa90784a090/code on line 4

//PHP 5.6 下返回正常
Month: 04; Day: 30; Year: 1973

也正是因为split ()要使用正则表达式 pattern 的语法,所以搜索的速度不会很快。preg_split() 函数使用了 Perl 兼容正则表达式语法,通常是比 split() 更快的替代方案。如果不需要正则表达式的威力,则使用 explode() 更快,这样就不会招致正则表达式引擎的浪费,可能效率的原因导致了PHP 7 中直接放弃了这个函数吧。
作者: 风云无蛋    时间: 2017-2-23 14:59
原来如此
作者: devil_joker@qq.    时间: 2017-2-27 10:02
66666666666666666
作者: s风继续吹q    时间: 2017-2-27 19:09
66666666666666666666666666666666
作者: shinehow    时间: 2017-2-28 08:18
啦啦啦啦啦啦啦啦啦啦啦啦啦
作者: chengbocd    时间: 2017-2-28 18:39
啊水水水水谁谁谁水水水水
作者: echohhhhhh    时间: 2017-3-3 16:58
hshgfhfghfdghjfgd
作者: qaz3781    时间: 2017-3-4 18:02
66666666666666666666
作者: vcflyfeel    时间: 2017-3-13 15:40
11111111111111111
作者: xzrong2902    时间: 2017-3-14 15:17
谢谢呵呵呵呵
作者: echohhhhhh    时间: 2017-3-15 12:28
000000000000000000000000000000000000
作者: datong    时间: 2017-3-16 14:54

作者: zhang9648    时间: 2017-3-24 23:37
一直搞不明白这些!!!
作者: 黑牛.IOS    时间: 2017-3-28 09:25
很不错

作者: a220a220    时间: 2017-4-7 09:32
dingdingdingdingdingding
作者: moaomao    时间: 2017-4-11 15:49

作者: EchoTest    时间: 2017-4-17 14:58
学习了,感谢房主
作者: zhm898885242    时间: 2017-4-17 17:24
我是来取经的!!
作者: 风丨叶    时间: 2017-4-19 15:30
谢谢大神分享
作者: 1234551    时间: 2017-4-19 18:36
谢谢分享

作者: 沈唁    时间: 2017-4-19 22:04
我要看隐藏

作者: 今天吃什么    时间: 2017-4-20 11:25
紫薯布丁。。。。
作者: benq81    时间: 2017-4-21 11:49
看看,谢谢
作者: sisian    时间: 2017-4-25 14:42
感谢分享
作者: 2338671769    时间: 2017-4-26 16:05
设呢么贵爱
作者: heima118310    时间: 2017-4-28 22:55
谢谢!!!!!!!!!!
作者: heima118310    时间: 2017-4-28 22:57
谢谢!!!!!!!!!!
作者: 剑客星辰    时间: 2017-4-30 11:06
3333333333333333333333
作者: 咿呀咿呀哟    时间: 2017-5-2 13:45
一直不是很清楚,堆区和栈区。。感谢老师的分享~
作者: 11111YYYY    时间: 2017-5-2 21:19
111111111111111111111
作者: foodsc    时间: 2017-5-5 11:52
学习学习
作者: skyly    时间: 2017-5-6 08:23
谢谢楼主
作者: gaolang    时间: 2017-5-10 00:29
黑马我梦的开始
作者: follow11    时间: 2017-5-11 07:06
很好的东西

作者: follow11    时间: 2017-5-11 07:06
很好的东西

作者: davidphp    时间: 2017-5-11 16:40
谢谢分享!
作者: followyounger11    时间: 2017-5-11 18:32
很好的东西

作者: rebirthday    时间: 2017-5-12 14:35
66666666666666666666
作者: 1178947261    时间: 2017-5-16 10:27
点点滴滴点
作者: 琉璃双飞月    时间: 2017-5-17 13:44
谢谢,很有帮助,好么么么么mm
作者: xiaoshizi    时间: 2017-5-18 21:58
dwadadadada
作者: 踏上PHP征程    时间: 2017-5-19 20:50
谢谢分享
作者: 踏上PHP征程    时间: 2017-5-19 21:04
谢谢分享 666
作者: worldtongf    时间: 2017-5-20 23:15
PHP数组函数一网打尽(合并,拆分,追加,查找,删除等)
作者: Echozz    时间: 2017-5-22 11:32
谢谢楼主分享
作者: ziqi1278    时间: 2017-5-22 16:17
erj5tyjue5ujerthrthrtherthreththdrgh
作者: 瞬间回忆    时间: 2017-5-24 16:26
PHP小白要懂:内存的栈区、堆区、全局区、代码区
作者: dongfengyuli    时间: 2017-5-29 11:41
楼主好人楼主好人。。
作者: wang1874207723    时间: 2017-6-7 19:21
woxiangkankanzhege dongxi
作者: 打小我就行    时间: 2017-6-16 19:59
111111111111111111111111111111
作者: 景曦    时间: 2017-7-6 15:32
谢谢分享  学习学习
作者: jxh    时间: 2017-7-6 16:50
学习学习




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2