博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跟随我在oracle学习php(21)
阅读量:6249 次
发布时间:2019-06-22

本文共 2285 字,大约阅读时间需要 7 分钟。

变量间的传值方式

总体说明:

1,这里讨论的传值方式是指:一个变量对另一个变量

2,它不仅仅适用于赋值语句,也适用于其他有同样含义的语句,比如:函数的实参到形参

3,传值方式只有2种:值传递,引用传递

4php中,所有变量,默认都是值传递。

5,要想使用引用传递,必须使用引用传递的符号: &

 

 值传递(相互独立)

是指将一个变量的数据值(数据内容)拷贝一份,然后赋值给另一个变量。

代码示例:

 

图示如下:

 

复制完之后,这两个变量就没有关系了(互相独立)!

 

结果为:

 

引用传值:(相关联)

是指将一个变量的引用关系拷贝一份,然后赋值给另一个变量,即另一个变量也同样由该关系决定了指向某个数据:

代码示例:

 

 

 

图示如下:

 

 

 

赋值(传值)完之后,两个变量指向同样一个数据。

我们有知道,对变量的操作就是对数据的操作。

则:

对变量v1的操作,改变的数据,也就是体现为v2也发生了改变。

测试:

 

 

结果为:

 

 

另外,在这种引用传值的情况下,unset一个变量,则另一个跟它有关(指向同样数据的关系)的变量,并不受影响。

测试:

 

 

 

结果:

 

 

 

可变变量 $$$def;

所谓可变变量,就是一个变量的名,又是一个变量。

可变变量的语法是php的很特殊的语法——其他语言中少见。

$v1 = “abc”; //这是一个字符串变量,其内容是字符串“abc”

$abc = 10; //这是一个普通变量,其内容是数字10

echo  $$v1; //此时,就是所谓可变变量

怎么理解:

1,凡是$符号出现,就会有可能理解为是一个变量

2,这里第一个“$”出现了,则php就视图将其解释为一个变量,变量名是$v1;

3,我们有知道,$v1的值是”abc”

4,那么,第一个“$”符号后面的变量名,就得到为“abc”

5,即:echo 试图输出的是变量$abc, 自然是数字10

实际上,理论上,可变变量的嵌套还可以更多,比如:$$$def;

预定义变量

综述:

1:预定义变量又叫超全局变量,包括:

$_GET, $_POST, $_SERVER, $_REQUEST, $GLOBALS,  $_COOKIE, $_SESSION, ..........(大约10个)

2:作用域问题

php中,自定义的变量的作用域,分两种:全局作用域(函数外),局部作用域(函数内)。

但:

预定义变量的作用域称为“超全局作用域”:全局作用域 + 局部作用域的总和(函数内外全都可用)

3:数据类型问题:

超全局变量都是数组!

$_GET变量(数组):

get这个词,常常出现在这里:<form  action=”abc.php”  method=”get” >.....</form>

这叫做“表单以get方式提交数据”

$_GET这个预定义数组变量,就是指以这种方式提交的所有数据的集合(数组)

对应来说,也可以以post方式提交数据

注意:get这个词,似乎没有中文翻译。

实际上,在网页中,以get方式提交数据有多种形式:

形式一:

<form  action=”abc.php”  method=”get” >

项目1<input type=”text”   name=”uName”   />

项目2<input type=”password”   name=”uPswd”   />

<input type=”submit”  value=”提交”  />

</form>

其作用是:用户填写表单数据,并提交后,会将数据发送(提交)给页面abc.php,其实也可以理解为“打开”该网页(abc.php),还可以理解为“请求”该网页(abc.php)

形式二:

<a  href=”abc.php?uName=test1&uPswd=123”  > 文字。。。</a>

其作用是:用户点击链接后,会将数据发送(提交)给页面abc.php,其实也可以理解为“打开”该网页(abc.php),还可以理解为“请求”该网页(abc.php),这种请求也是get请求

形式三:

<script>

location.href = “abc.php?uName=test1&uPswd=123”; //利用location对象的属性href

</script>

其作用是:当该行语句执行的时候(通常其实是在函数中),会将数据发送(提交)给页面abc.php,其实也可以理解为“打开”该网页(abc.php),还可以理解为“请求”该网页(abc.php),这种请求也是get请求

形式四:

<script>

location.assign( “abc.php?uName=test1&uPswd=123”); //利用location对象的方法assign()

</script>

其作用是:当该行语句执行的时候(通常其实是在函数中),会将数据发送(提交)给页面abc.php,其实也可以理解为“打开”该网页(abc.php),还可以理解为“请求”该网页(abc.php),这种请求也是get请求

 

不管哪种形式的get提交过来的数据,获取数据是一样的:

(在abc.php网页中)

<?php

$v1 = $_GET[‘uName’]; //单引号也可以用双引号,本质是一个字符串,其实是数组的键名(下标)

$v2 = $_GET[‘uPswd’]; //该键名必须跟提交的时候的名字完全一致(区分大小写)

?>

 

举例:

 

 

 

提交后:

 

 

转载于:https://www.cnblogs.com/RighTgraM/p/10811770.html

你可能感兴趣的文章
几种函数调用方式
查看>>
【MySQL】MySQL 常用语法之锁表与解锁表
查看>>
【142】阿蛮歌霸使用技巧
查看>>
HTTP 请求报文 响应报文
查看>>
[转载] 程序员必看:请不要做浮躁的人 24法则
查看>>
JavaWeb_JavaEE_命名规则
查看>>
HDU 4010 Query on The Trees
查看>>
[PAL规范]SAP HANA PAL 数据处理四分位间距检测Inter-quartile Range Test编程规范IQRTEST...
查看>>
[HDU 1317]XYZZY[SPFA变形][最长路]
查看>>
Skip list--reference wiki
查看>>
解决Asp输出乱码问题
查看>>
1941设置站点模板,一生珍藏,所有玩具
查看>>
程序员面试题:问谁养蛇?
查看>>
黑马程序猿_try-catch-finally
查看>>
Atitit.android webview h5运行环境总结
查看>>
腾讯与唯品会笔试面试经历
查看>>
Centos 多个mysql数据库
查看>>
Linux下gcc和g++编译helloworld
查看>>
转:服务器负载均衡的基本功能和实现原理
查看>>
DOM
查看>>