导航:首页 > 编程语言 > php引用外部变量

php引用外部变量

发布时间:2024-07-16 12:44:14

php闭包函数怎么使用外部变量

使用use关键词引入变量即可,请看代码:

<?php
functioncallFunc($callback){
returncall_user_func($callback);
}

$author='Zjmainstay';
echocallFunc(function()use($author){#这里
return"Theauthoris{$author}";
});

Ⅱ php 调用 其他文件变量

★ PHP变量是有作用域(指定的有效范围)的:

  1. 函数内声明的变量只对该函数有效,出了函数的范围就会无效;

  2. 同理在函数以外声明的变量在函数中访问也是无效的;

  3. 函数内的变量跨函数访问也是无效的。


★ 问题推测:

听你上面说的情况,你的$username变量应该声明在函数或者类里边,然后从函数外访问;或者声明在函数外,但从函数中进行访问了。


★ 解决方法:

函数中的变量要想让其全局有效必须得在变量前面加global关键字声明成全局变量才可以在函数以外访问到;同理在函数外声明的函数如果想要在函数中来访问,也要使用global关键字来声明为全局变量。


★关于php变量作用域的示范:

举例有php文件b.php如下:

<?php

functionfunc1(){
global$a2;
$a1='vara1Infilebfunctionfunc1';
$a2='vara2Infilebfunctionfunc1';
}

?>


然后有php文件a.php如下:

<?php

error_reporting(0);//关闭错误报告
include('b.php');//引用b.php
$a3='vara3Infileaoutoffunction';
$a4='vara4Infileaoutoffunction';

functionfunc2(){
global$a5;
$a5='vara5Infileafunctionfunc2';
$a6='vara6Infileafunctionfunc2';
}

functionfunc3(){
echo'printvar$a1to$a6infunctionfunc3:<br>';
var_mp($a1);
var_mp($a2);
var_mp($a3);
var_mp($a4);
var_mp($a5);
var_mp($a6);
}

functionfunc4(){
echo'printvar$a1to$a6infunctionfunc4:<br>';
global$a1;
global$a2;
global$a3;
global$a4;
global$a5;
global$a6;
var_mp($a1);
var_mp($a2);
var_mp($a3);
var_mp($a4);
var_mp($a5);
var_mp($a6);
}

echo'printvar$a1$a2$a5$a6infilea:<br/>';
var_mp($a1);
var_mp($a2);
var_mp($a5);
var_mp($a6);
func3();
func4();

func1();
func2();

echo'printvar$a1$a2$a5$a6infilea(aftercallfunc1andfunc2):<br/>';
var_mp($a1);
var_mp($a2);
var_mp($a5);
var_mp($a6);
func3();
func4();

?>

执行a.php后就会输出:

printvar$a1$a2$a5$a6infilea:<!--$a1$a2$a5$a6都被声明在函数中,此时因为函数未被调用,所以都无法正确取值-->
null

null

null

null

printvar$a1to$a6infunctionfunc3:<!--$a1$a2$a5$a6同上,$a3和$a4因为在函数外声明所以全部无法正确取值-->
null

null

null

null

null

null

printvar$a1to$a6infunctionfunc4:<!--$a1$a2$a3$a4同上,$a3和$a4用global声明为全局了,所以可以正确取值-->
null

null

string'vara3Infileaoutoffunction'(length=32)

string'vara4Infileaoutoffunction'(length=32)

null

null

printvar$a1$a2$a5$a6infilea(aftercallfunc1andfunc2):<!--在执行func1和func2之后被关键字声明为全局变量的$a2和$a5可以被正确取值-->
null

string'vara2Infilebfunctionfunc1'(length=31)

string'vara5Infileafunctionfunc2'(length=31)

null

printvar$a1to$a6infunctionfunc3:<!--因为所有变量不是声明在函数func3外就是被声明在其他函数中,所以都无法正确取值-->
null

null

null

null

null

null

printvar$a1to$a6infunctionfunc4:<!--除了在其它函数内未被声明为全局的$a1和$a6,其他变量均被正确取值-->
null

string'vara2Infilebfunctionfunc1'(length=31)

string'vara3Infileaoutoffunction'(length=32)

string'vara4Infileaoutoffunction'(length=32)

string'vara5Infileafunctionfunc2'(length=31)

null


上面的代码可以让你很好的理解变量作用域的规则。


★ 资料参考

更多的变量作用域资料请参考http://www.php.net/manual/zh/language.variables.scope.php

Ⅲ 一个PHP文件想用另一个PHP文件里的变量怎么办

需要准备的材料分别是:电脑、php编辑器、浏览器。

1、首先,打开php编辑器,新建php文件,例如:index2.php,定义一个变量。

阅读全文

与php引用外部变量相关的资料

热点内容
地理科学pdf 浏览:147
单片机数据读取 浏览:392
法语教程pdf 浏览:996
面试服务器出现502怎么定位 浏览:803
java读取http 浏览:487
列宁全集pdf下载 浏览:334
你好法语pdf 浏览:408
安卓怎么样让手机失去色彩 浏览:651
oracle11gr2linux 浏览:141
茶叶pdf 浏览:23
pdf图怎么打印 浏览:142
app图标有个e是什么app 浏览:266
linux运行python程序 浏览:238
如何打开已编译文件 浏览:215
选购云服务器如何注册 浏览:460
阿猫一个人拍解压视频 浏览:200
爆闪单片机 浏览:717
为什么b站显示找不到服务器 浏览:464
吃鸡安卓和ios怎么换 浏览:142
程序员的心脏是什么 浏览:557