当前位置:首页 » 编程语言 » php变量中引用变量

php变量中引用变量

发布时间: 2022-09-12 01:32:49

Ⅰ 详解php变量传值赋值和引用赋值变量销毁

本文实例为大家分享了PHP变量传值赋值和引用赋值变量销毁的具体代码,供大家参考,具体内容如下
<?php
$a
=
100;
$b
=
200;
var_mp($a,$b);
//int(100)
int(200)
?>
php中,上面的代码,变量是怎么存放的呢?
上面的代码变动下,将变量b赋值给变量a,会发生什么?
<?php
$a
=
100;
$b
=
200;
$a
=
$b;/*多了这个*/
var_mp($a,$b);
//int(200)
int(200)
?>
问题来了,$a
=
$b,那么是将变量a的指针指向了变量b指针所指向的位置?还是变量a指向的位置的值变了?
引用赋值和上面传值赋值不同,引用赋值是两个变量指向一个地方,一旦这样,一改俱改。
怎么引用赋值呢?变量名前加&即可,
$a
=
&$b;
这样赋予变量a的就不仅仅是变量b的值,而是变量b的地址,变量a和变量b共同指向一个地址。
<?php
$a
=
100;
$b
=
200;
$a
=
&$b;
var_mp($a,$b);
//int(200)
int(200)
/*变量b引用赋值给变量a后,ab指向同一个地址,将会一改俱改,如下:*/
$a
=500;
var_mp($a,$b);//int(500)
int(500)
一改俱改
$b
=
700;
var_mp($a,$b);//int(700)
int(700)
一改俱改
?>
<?php
/*理解下面的话*/
$a
=
100;
//变量a赋值int
100
,100是基础数据类型,不是变量,是存在变量指向位置的
$a
=
$b;
//变量b的值
赋值
给变量a,变量a,b各有各的指向,执行之后,各是各的。
$a
=
&$b;
//变量b的值的地址
赋值给变量
a
,变量a,b共用一个地址哦!一改俱改!
?>
<?php
/*
php中unset()是用来销毁变量的,但很多时候,unset()只把变量给销毁了,
内存中存放的该变量的值仍然没有销毁,也就是没能达到我们想要的释放内存的效果。
这里可以用
变量=null
的方法来释放其内存
unset也会释放内存的情况
1.
在变量值所占空间超过255字节长的时候,unset(变量)才会释放内存
2.
只有当指向该值的所有变量都被销毁后,地址才会被释放(比如$a,$b都指向该值,仅仅unset($a);是不释放的,$b还是正常存在的)(也要执行1的判断)
*/
$a
=
200;
$b
=
&$a;
unset($a);
var_mp($a,$b);
//NULL
int(100)
?>
上面的代码,执行到unset($a)时候,就是将变量a的指向断开,同时将变量a扔出花名册,从下图可以看出,对变量b是没有影响的。
但是,如果用$a
=
null;这种方式销毁变量时,将会有如下影响:
<?php
$a
=
100;
$b
=
&$a;
$a
=
null;
var_mp($a,$b);
//NULL
NULL
?>
这种方式,释放了内存,但是共用一个地址的另一个变量也受到了影响。
看看这两种方式在数组上的应用:
<?php
$aaa
=
array(
'a'=>1,
'b'=>2
);
unset($aaa['a']);
print_r($aaa);
//Array
(
[b]
=>
2
)
,用unset,数组中这一项不存在了
$bbb
=
array(
'a'=>1,
'b'=>2
);
$bbb['a']
=
null;
print_r($bbb);
//Array
(
[a]
=>
[b]
=>
2
)
,用
=
null,数组中这一项还存在,只是为空了
?>
以上所述是小编给大家介绍的PHP变量传值赋值和引用赋值变量销毁详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:PHP生成短网址的思路以及实现方法的详解PHP错误提示It
is
not
safe
to
rely
on
the
system……的解决方法PHP随机数函数rand()与mt_rand()的讲解php微信扫码支付
php公众号支付PHP实现支持CURL字符串证书传输的方法PHP使用OB缓存实现静态化功能示例PHP使用mysqli同时执行多条sql查询语句的实例PHP中命名空间的使用例子PHP
SESSION机制的理解与实例PHP自动载入类文件函数__autoload的使用方法

Ⅱ PHP中引用变量(指针)问题

因为$var2是$var1的引用,换句话说,这两变量指向同一个地址。一个改变了,并一个变量也跟着改变了。

Ⅲ php 里面的变量怎么用到外面的变量

$posts = new WP_Query('post_type=any&posts_per_page=-1&post_status=publish');
$posts = $posts->posts;

header('Content-type:text/plain');
foreach($posts as $post) {
switch ($post->post_type) {
case 'revision':
case 'nav_menu_item':
break;
case 'page':
$permalink = get_page_link($post->ID);
break;
case 'post':
$permalink = get_permalink($post->ID);
break;
case 'attachment':
$permalink = get_attachment_link($post->ID);
break;
default:
$permalink = get_post_permalink($post->ID);
break;

}

//echo ${permalink};

//echo "$posts";

//echo "\n{$permalink}";
//print_r($permalink);
//echo "\n{$post->post_type}\t{$permalink}\t{$post->post_title}";

//var_mp( $GLOBALS);

$url= ${permalink};
$urls=$url;
//echo "\n{$urls}";
}

echo "\n{$urls}";
$urls=substr($urls,0,-1);
$urls = explode(",",$urls);

Ⅳ PHP为什么一定要引用变量直接修改变量的值不就行了吗

这个涉及到内存资源的问题,如果使用引用的话,$a和$b在内存中就是同一内存地址存储,这样可以减少内存的消耗。当然,从一个简单的数字或许看不到什么效果,但如果这个变量存储的是上万索引的数组或者对象,效果就很明显了。不使用引用的话,$b就会一个$a的值存储到内存中,就会多占一部分内存……

Ⅳ php的class中怎样引用外部的变量

把$a放在下面,

function name($string){

global $a;

}

$a="xxfaxy";

name("$a");

这样就可以了。

Ⅵ php如何通过变量的变量引用外部变量

很不习惯PHP中的变量作用域,PHP中函数变量和全局是完全隔绝的,也就是无法相互访问
比如下面这样:

复制代码代码如下:

$test = 123;
abc(); //这里什么都不输出,因为访问不到$test变量
function abc(){
echo($test);
}$test = 123;
abc(); //这里什么都不输出,因为访问不到$test变量
function abc(){
echo($test);
}

如果,你想在函数内部访问外部变量,你需要这样:

复制代码代码如下:

$test = 123;
abc(); //输出123
function abc(){
global $test;
echo($test);
}$test = 123;
abc(); //输出123
function abc(){
global $test;
echo($test);
}
也就是说,你使用全局变量就可以在函数内调用外部定义过的变量

Ⅶ PHP如何在一个类中引用另一个类中的变量.

可能你理解上有问题。不太明白你的意思,所以我分开解释。如果是在定义的时候就引用,下面两种。1.两个都是类,即类的静态变量(static修饰),一个类自然可以引用静态变量,因为静态变量是在程序进入main函数前就已经初始化完了。2.一个类A一个实例B(A类产生的对象),A当然无法在类的内部引用(即定义中),因为实例是在程序中动态分配的内存,类A必然先于实例B存在,所以A并不能知道B的存在。B可以引用类A的静态变量,理由同1。如果是在运行时才引用。你只要在类A里写一个函数,例如function(B b),这样你要调用的时候通过这个函数做接口就行了,至于b你要做什么,就是你的事了。

Ⅷ 在php变量中引用变量,然后再进行赋值的方法

<?php
$t=array(1,2,3);
$s=55;
for($i=0;$i<count($t);$i++){
$n="new".$t[$i];
$$n=$s;
}
echo$new1,"<br/>";
echo$new2,"<br/>";
echo$new3,"<br/>";

以上你直接拷贝运行,检验一下是不是你要的效果。

补充

$t=array("typeid"=>array(10,21,38),'view'=>10);
for($i=0;$i<count($t["typeid"]);$i++){
$n="view".$t["typeid"][$i];
$$n=$t['view'];
}
echo$view10,"<br/>";
echo$view21,"<br/>";
echo$view38,"<br/>";

你要的效果需要连续用两个$。

Ⅸ PHP变量的引用里的$b = $ $a;中的$和$a中间是否要空格

你这样写语法是错误的,$b你赋的是一个空的东西。
变量引用用的是&符
$a
=
1;
$b
=
2;
$b
=
&$a;
echo
$a;
//
输出:1
echo
$b;
//
输出:1
像你之前写的
$a
=
1;
$b
=
2;
$b
=
$
$a;
echo
$a;
//
输出:1
echo
$b;
//
输出:是空
你可以用print输出就可以看到了是有输出的,但是输出是空
echo
print
$b;
//打印出是1,说明有输出但是输出是空。
你吧3赋给$b之后$b是引用的$a,因为用的是引用其实你赋值给$b就相当于赋值给$a。

Ⅹ PHP如何在一个类中引用另一个类中的变量

a.php类中的变量需申请public $a=''; 然后b.php中就要包含a文件并$a=new a();然后$a->$a;就是a中的变量了。

热点内容
巴法云服务器带宽 发布:2025-01-12 13:15:26 浏览:676
搭建国外服务器需要多少钱 发布:2025-01-12 13:08:01 浏览:827
我的世界mod服务器开荒 发布:2025-01-12 13:07:10 浏览:757
sql优化书 发布:2025-01-12 13:07:09 浏览:455
高校网站服务器搭建与维护论文 发布:2025-01-12 13:06:31 浏览:711
sqlserver实例没有 发布:2025-01-12 12:57:18 浏览:252
代码文件服务器地址怎么写 发布:2025-01-12 12:50:47 浏览:760
java中方法与 发布:2025-01-12 12:50:13 浏览:655
如何快速查找c语言编译时的错 发布:2025-01-12 12:49:56 浏览:32
看门狗上传病毒 发布:2025-01-12 12:32:54 浏览:326