PHP面试 PHP基础知识 一(引用变量)
PHP引用变量
常见引用变量面试题:
什么是引用变量?
在PHP中用什么符号定义引用变量?
考点:PHP的引用变量的概念及定义方式
概念:在PHP中引用意味着用不用的名字访问同一个变量内容
定义方式:&符号
延伸:PHP引用变量的原理
//定义一个变量
$a = range(0,100); //内存开辟一块空间存储$a
//定义变量b,将a变量赋值给b
//cow copy on write cow机制
$b = $a; //此时不会新开辟一块新空间存储$b
//当$a或$b发生改变 才会开辟一块新空间
$a = range(0,100); //开辟新空间存储新值 //应用变量
$b = &$a; //此时使用了引用变量 $a,$b同时指向一个变量空间
$a = range(0,100); //不会开辟新空间存储新值
//改变原空间值 $b随$a改变而改变
unset知识点:
//unset 只会取消引用 不会销毁内存空间 $a = 1; $b = &$a; //$b引用$a unset($b); //取消引用 echo $a; // 结果 1
对象引用知识点:
// 对象本身就是引用传递
class person{
public $name = "xiaomiaomiao";
} $p1 = new person(); //实例化person类 $p2 = $p1; //$p1 赋值 $p2 $p2->name = "xiaowangwang"; //p2修改name值 不会开辟新空间
引用变量例题
//写出如下程序输出的结果 $data = [ 'a', 'b', 'c' ]; foreach($data as $key = $v){ $val = &$data[$key]; } //程序运行时,每一次循环结束后变量$data的值是什么?
//程序执行完成后,变量$data的值是什么
PHP面试 PHP基础知识 一(引用变量)的更多相关文章
- 【Java面试】基础知识篇
[Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充.源码分享见个人公告.Ja ...
- 死磕面试 - Dubbo基础知识37问(必须掌握)
作为一个JAVA工程师,出去项目拿20k薪资以上,dubbo绝对是面试必问的,即使你对dubbo在项目架构上的作用不了解,但dubbo的基础知识也必须掌握. 整理分享一些面试中常会被问到的dubbo基 ...
- java 基础知识三 java变量
java 基础知识 三 变量 1.作用域 {} 包围起来的代码 称之为代码块,在块中声明的变量只能在块中使用 2.常量 就是固定不变的量,一旦被定义,它的值就不能再被改变. 3.变量 变量必须在程序 ...
- Java基础知识之常量变量(一)
1.什么是变量,什么是常量?java的基本数据类型是什么 变量: 会发生改变的数据,叫做变量,如自定义一个a,并且对a进行赋值操作为1,也可以让a等于2,此时a就是一个变量 常量: 不会发生改变的值, ...
- 《Java基础知识》Java变量的声明、初始化和作用域
一.Java变量的声明 在 Java 程序设计中,每个声明的变量都必须分配一个类型.声明一个变量时,应该先声明变量的类型,随后再声明变量的名字.下面演示了变量的声明方式. double salary; ...
- C基础知识(2):变量&常量的定义和声明
变量定义和声明 (1) 使用int,char等类型符定义变量 使用int,char等类型符定义变量时,不管有没有指定初始值,都就已经建立了存储空间(开辟内存).内存寻址由大到小,优先分配内存地址比较大 ...
- PHP面试 PHP基础知识 十一(开发环境及相关配置)
开发环境及相关配置 版本控制软件 集中式和分布式 集中式:集中式版本控制工具,版本库集中存放在中央服务器,团队成员里的每个人工作时从中央服务器下载代码,个人修改后再提交到中央服务器 分布式:分布式版本 ...
- PHP面试 PHP基础知识 九(面向对象)
面向对象 PHP的类权限控制修饰符 public(公共的) . protected(受保护的).private(私有的) public :最高权限 可以在类的内部使用 可以在类的外部使用 可以 ...
- PHP面试 PHP基础知识 五(自定义函数和内部函数)
自定义函数 变量的作用域和静态变量 变量的作用域:变量的作用域也成为变量的范围,变量的范围即它定义上的上下文背景(也就是它生效的范围). 大部分的PHP变量只有一个单独的范围.这个单独的范围跨度同样包 ...
随机推荐
- context和getApplicationContext()的区别
在android中常常会遇到与context有关的内容 浅论一下 context : 在语句 AlertDialog.Builder builder = new AlertDialog.Builder ...
- 87、使用TensorBoard进行可视化学习
1.还是以手写识别为类,至于为什么一直用手写识别这个例子,原因很简单,因为书上只给出了这个类子呀,哈哈哈,好神奇 下面是可视化学习的标准函数 ''' Created on 2017年5月23日 @au ...
- 11. Django及数据库环境搭建
项目背景 我们做功能测试的时候知道,一个产品基本上都会有增删改查功能,对应接口也就是增删改查接口.做了2年接口自动化测试,觉得最难的点应该是数据的初始化,其实测试一个接口.对接口使用单元测试框架.生成 ...
- 导数与偏导数 Derivative and Partial Derivative
之前做了很长时间“罗辑思维”的听众,罗胖子曾经讲起过,我们这一代人该如何学习.其中,就讲到我们这个岁数,已经不可能再去从头到尾的学习一门又一门工具课程了,而是在学习某一领域时,有目的的去翻阅工具课程中 ...
- shell编程:变量替换
定义变量:$ var_1="I love you, Do you love me" 输出变量:$ echo $var_1 打印结果:I love you, Do you love ...
- MySQL数据库安装与启动(Linux)
1.用yum安装 用root权限打开命令行界面,执行以下yum指令: yum安装MySQL yum install mysql mysql-server mysql-devel -y 在最终提示Com ...
- UVA 12821 Double Shortest Paths
Double Shortest PathsAlice and Bob are walking in an ancient maze with a lot of caves and one-way pa ...
- 查看linux防火墙的状态
如有需要可以加我Q群[308742428]大家一起讨论技术,有偿服务. 后面会不定时为大家更新文章,敬请期待. 喜欢的朋友可以关注下.iptables防火墙1.基本操作 # 查看防火墙状态 servi ...
- 自定义DbUtils通用类
本实例使用C3P0连接池做连接,详见https://www.cnblogs.com/qf123/p/10097662.html开源连接池C3P0的使用 DBUtils.java package com ...
- flex布局(弹性布局)
1. 传统布局与 flex 布局比较 传统布局 兼容性好 布局繁琐 局限性,不能在移动端很好的布局 flex 弹性布局 操作方便,布局极为简单,移动端应用很广泛 PC端浏览器支持较差 IE 11 或 ...