欢迎来到小编的文章进行学习阅读,想必大家又有很多问题吧,在这里会有你想要收获的答案,请大家慢慢学习吧!计算机编程语言

之前一个朋友的帖子提到过这方面的疑问,这里简单整理一下,希望能让更多新学PHP的朋友得到帮助。

php的引用(就是在变量或者函数、对象等前面加上&符号)是个高级话题,新手多注意,正确的理解php的引用很重要,对性能有较大影响,而且理解错误可能导致程序错误!

很多人误解php中的引用跟C当中的指针一样,事实上并非如此,而且很大差别。C语言中的指针除了在数组传递过程中不用显式申明外,其他都需要使用*进行定义,而php中对于地址的指向(类似指针)功能不是由用户自己来实现的,是由Zend核心实现的,php中引用采用的是“写时拷贝”的原理,就是除非发生写操作,指向同一个地址的变量或者对象是不会被拷贝的,比如下面的代码:

以下为引用的内容:

$a = array('a','c'...'n');

$b = $a;

编程语言(programming language),是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。[1]

最早的编程语言是在电脑发明之后产生的,当时是用来控制提花织布机及自动演奏钢琴的动作。在电脑领域已发明了上千不同的编程语言,而且每年仍有新的编程语言诞生。很多编程语言需要用指令方式说明计算的程序,而有些编程语言则属于声明式编程,说明需要的结果,而不说明如何计算。

如果程序仅执行到这里,$b和$b是相同的,但是并没有像C那样,$a和$b占用不同的内存空间,而是指向了同一块内存,这就是php和c的差别,并不需要写成$b=&$a才表示$b指向$a的内存,zend就已经帮你实现了引用,并且zend会非常智能的帮你去判断什么时候该这样处理,什么时候不该这样处理。编程语言排行榜上

如果在后面继续写如下代码,增加一个函数,通过引用的方式传递参数,并打印输出数组大小。

以下为引用的内容:

function printArray(&$arr) //引用传递

{

print(count($arr));

}

printArray($a);

上面的代码中,我们通过引用把$a数组传入printArray()函数,zend引擎会认为printArray()可能会导致对$a的改变,此时就会自动为$b生产一个$a的数据拷贝,重新申请一块内存进行存储。这就是前面提到的“写时拷贝”概念。c语言编程入门

如果我们把上面的代码改成下面这样:

以下为引用的内容:

function printArray($arr)  //值传递

{

print(count($arr));

}

printArray($a);

上面的代码直接传递$a值到printArray()中,此时并不存在引用传递,所以没有出现写时拷贝。

大家可以测试一下上面两行代码的执行效率,比如外面加入一个循环1000次,看看运行的耗时,结果会让你知道不正确使用引用会导致性能下降30%以上。

大家学到了多少?如果意犹未尽,可前往课课家官网直接查看,希望大家获益匪浅哦!!!

php动态页面引用,怎么在动态网页PHP中引用的使用注意事项相关推荐

  1. markdown中引用代码_如何在Markdown中引用您JavaScript源代码

    markdown中引用代码 您是否撰写有关Javascript和Typescript的技术文章? (Do you write technical articles about Javascript a ...

  2. java中某对象的引用什么意思_在java中,引用对象变量和对象间有什么关系?()

    案例分析一:假定CPU的主频是500MHz.硬盘采用DMA方式进行数据传送,其数据传输率为4MB/s, 每次DMA传输的数据量为8KB, 要求没有任何数据传输被错过. 如果CPU在DMA初始化设置和启 ...

  3. php引用对象方法吗,在PHP中引用容器对象的方法?

    您必须修改代码才能提供关系.在OOP中,我们称之为 aggregation. 假设PHP 4,以及"一系列条形图"的想法 class foo { var $bars = array ...

  4. python django 动态网页_python27+django1.9创建app的视图及实现动态页面

    一.简易静态视图 views文件里写: from django.http import HttpResponse def hello(request): return HttpResponse(&qu ...

  5. JavaWeb——动态页面技术(JSP/EL/JSTL)

    静态页面与动态页面: 1.动态网页,是指跟静态网页相对的一种网页编程技术.静态网页,随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了--除非你修改页面代码.而动态网页则不然,页面代码 ...

  6. Scrapy爬取动态页面下载图片(以抓取360图片为例)

    当我们想要抓取一个页面的内容时,要做的第一件事不是写代码,而是分析页面,确定这是一个静态页面还是动态页面.抓取静态页面的方法十分简单,直接解析html源码再进行分析解析即可,如果不太明白,可以参考我上 ...

  7. php 静态 动态 cdn 加速,CDN静态加速跟动态加速的区别,动态加速好还是静态加速好?...

    CDN做为内容分发技术,其核心原理就是将内容缓存到离用户最近的节点上,实现内容分发加速,这里内容主要分为两种,一种是静态内容,一种是动态内容.首先,对静态资源,CDN的加速效果是最好的,因为文件本身没 ...

  8. 在web项目中的类库中引用webservice 在部署后更改webservice路径的方法

    在一次开发过程中发现这样的问题: 我引用外部的webservice连接并不是在solution里面的web层,而是在solution里面的类库中引用的,原本在web中引用自动生成的引用路径会在web. ...

  9. php 调用变量方法名,php中引用(变量和函数名前加符号)用法

    本文章来给大家介绍在php中我们常看到在在php变量前面加个&符号,这个就是php中引用符号了,它可以用于各种变量.函数.对象了下面我来给各位详细介绍php&符号用法.在 PHP 中引 ...

  10. asp是什么文件?html和asp的区别?(HTML是客户端语言,主要用于创建静态网页;asp是服务器端语言,用于设计用户交互式页面或动态页面)

    1.HTML是一种客户端语言,它允许Web浏览器解析并显示在标签之间写入的内容,允许把图像和对象嵌入到网页中.ASP是一种服务器端语言,这意味着写入的代码将被发送到服务器中,并根据要求执行的操作返回一 ...

最新文章

  1. Excel exportExcel.cs 一个生成.xls文件的例子
  2. linux 命令博客,Linux命令(一)
  3. OpenSolaris北京用户组的第一次活动
  4. 直播预告丨Oracle 12C~19C统计信息的最佳实践
  5. hdu 3635 Dragon Balls 并查集应用记录每个点的转移次数
  6. DropBlock正则化
  7. windows下 MongoDB 导入json文件
  8. c++primer 容器算法整理一
  9. Cisco 证书查询
  10. 数学系教材推荐(转载)
  11. Qt-QThread
  12. 【每日新闻】Gartner:区块链热度高但实际部署较少且面临挑战 | 阿里巴巴宣布研制出全球最强量子电路模拟器“太章”...
  13. 暴风电视刷鸿蒙系统刷机包,暴风电视蓝屏怎么解决
  14. 代码自动生成-宏带来的奇计淫巧
  15. 浏览器0x80004005 无法上网
  16. average函数例子c语言数组,average函数(average函数使用例子)
  17. 医学通识50讲学习笔记(4)--疾病和症状
  18. 余承东吐槽iPhone X长的丑体验差;雷军称小米明年要进世界500强;特斯拉股价被指太荒唐丨价值早报
  19. vue 具名插槽用法
  20. 文章详情页文章评论功能

热门文章

  1. 线程间操作无效: 从不是创建控件“listBox1”的线程访问它
  2. 24.go clean
  3. 9.Linux/Unix 系统编程手册(上) -- 进程凭证
  4. 29.优化 MySQL Server
  5. 92. php 命名空间(2)
  6. 3. static file process
  7. 9. HTML DOM getElementsByName() 方法
  8. opencv java 特征提取_OPENCV特征点java提取与匹配与比较
  9. Android开发22——广播接收者BroadcastReceiver的原理和注册方式
  10. 【算法笔记】B1040 有几个PAT