导航:首页 > 编程语言 > phpfunctionuse

phpfunctionuse

发布时间:2023-03-10 19:38:08

‘壹’ php里如何获取函数的调用者名称

先放上来别人的例子吧:
call_user_func函数类似于一种特别的调用函数的方法,使用方法如下:

复制代码 代码如下:

function a($b,$c)
{
echo $b;
echo $c;
}
call_user_func('a', "111","222");
call_user_func('a', "333","444");
//显示 111 222 333 444
?>

调用类内部的方法比较奇怪,居然用的是array,不知道开发者是如何考虑的,当然省去了new,也是满有新意的:

复制代码 代码如下:

class a {
function b($c)
{
echo $c;
}
}
call_user_func(array("a", "b"),"111");
//显示 111
?>

call_user_func_array函数和call_user_func很相似,只不过是换了一种方式传递了参数,让参数的结构更清晰:

复制代码 代码如下:

function a($b, $c)
{
echo $b;
echo $c;

}
call_user_func_array('a', array("111", "222"));
//显示 111 222
?>

call_user_func_array函数也可以调用类内部的方法的

复制代码 代码如下:

Class ClassA
{

function bc($b, $c) {
$bc = $b + $c;
echo $bc;
}
}
call_user_func_array(array('ClassA','bc'), array("111", "222"));

//显示 333
?>

call_user_func函数和call_user_func_array函数都支持引用,这让他们和普通的函数调用更趋于功能一致:

复制代码 代码如下:

function a($b)
{
$b++;
}
$c = 0;
call_user_func('a', $c);
echo $c;//显示 1
call_user_func_array('a', array($c));
echo $c;//显示 2

另:call_user_func函数和call_user_func_array函数都支持引用。

复制代码 代码如下:

<?php
function increment(&$var)
{
$var++;
}
$a = 0;
call_user_func('increment', $a);
echo $a; // 0
call_user_func_array('increment', array(&$a)); // You can use this instead
echo $a; // 1
?>

‘贰’ php匿名函数中的use有什么用

php文档中关于use的说明

所有支持命名空间的PHP版本支持三种别名或导入方式:为类名称使用别名、为接口使用别名或为命名空间名称使用别名。PHP5.6开始允许导入函数或常量或者为它们设置别名。
在PHP中,别名是通过操作符use来实现的.下面是一个使用所有可能的五种导入方式的例子:
Example#1使用use操作符导入/使用别名
<?php
namespacefoo;
useMyFullClassnameasAnother;

//下面的例子与useMyFullNSnameasNSname相同
useMyFullNSname;

//导入一个全局类
useArrayObject;

//importingafunction(PHP5.6+)
usefunctionMyFullfunctionName;

//aliasingafunction(PHP5.6+)
;

//importingaconstant(PHP5.6+)
useconstMyFullCONSTANT;

$obj=newnamespaceAnother;//实例化fooAnother对象
$obj=newAnother;//实例化MyFullClassname对象
NSnamesubnsfunc();//调用函数MyFullNSnamesubnsfunc
$a=newArrayObject(array(1));//实例化ArrayObject对象
//如果不使用"useArrayObject",则实例化一个fooArrayObject对象
func();//
echoCONSTANT;//
?>

‘叁’ php调用自定义函数

&引用符号。
不加引用时候,你传进去的$a被复制了一份,然后你在函数里面改变$a实际上是改变复制的那个,原来的那个不变,退出函数后$a还是原来那个值。
加了引用符号后里面的$a就是外面的$a的引用,修改了函数里面的$a就等于修改了外面的$a。

‘肆’ php 问题 unexpected T_FUNCTION

整理了一下格式,代码没有问题,三次输出中第一个和第三个都能正常显示,第二个会提示全局变量里没有index v1,因为你的$v1是定义在function里面的,所以提示没有也是正确的。

如果还报错就检查一下各种括号的匹配对不对,还不行就报一下PHP版本

functionfunc1(){
$v1=10;
$v2=20;
$func2=function()use($v1,&$v2){
$v1++;
$v2--;
var_mp($v1,$v2);
//11,19
var_mp($GLOBALS['v1']);
};
$func2();

var_mp($v1,$v2);
//10,19
}

‘伍’ php 使用use 和直接传参的区别

实际应用 1 : 在创建闭包时, 生成所use变量的快照, 下文再次调用闭包函数时, 快照变量不改变
$a = 5;

$b = function ($x) use ($a) {
$a += $x; echo $a;
};

$a = 10; // 这个变量被再次赋值, 但是在use语句中的'快照'是不会改变的

$b(100); // 输出 : 105

实际应用 2 : 使用引用传值, 生成所use变量的指针, 下文再次调用闭包函数时, 快照变量会改变(其实这样做与直接传参已经没有区别, 所以这么做意义不大, 而且代码可读性降低)

$a = 5;

$b = function ($x) use (&$a) {
$a += $x; echo $a;
};

$a = 10; // 变量重新赋值, 上文中闭包所引用的变量值也被改变

$b(100); // 输出 : 110

‘陆’ php function括号里(类名 变量名)这种写法是什么意思

php本来是弱类型语言,经过这几年的发展,php也支持了类型判断,比如可以声明一个函数变量为

function test(int $a):int{}

对于类名,变量名这种写法,是php5中引入的,这样目的就是对参数进行限定,可以提前判断出不符合类型的变量传入。

依赖注入是一种设计模式,而它依赖的就是这个功能,通过注入不同的类来实现不同的功能。

‘柒’ PHP匿名函数怎么使用

这里的use实际上就是将全局的$message拷贝到局部函数中,所以很类似于global,不过和global不同的是:
use时:当你在函数中对$message更改的时候不会影响到全局的那个$message,也就是说使用use实际上是拷贝一份变量到函数中。
global时:正相反,在函数中对$message更改的时候会影响到全局的那个$message。我在后盾人视频平台才看见教师讲这个,没想到就能帮到你,呵呵太有趣了

‘捌’ php 函数内引用全局变量

<?php
$var1 = "Example variable";
$var2 = " ";

function global_references($use_globals)
{
global $var1, $var2;
if (!$use_globals) {
$var2 =& $var1; // visible only inside the function///???
} else {
$GLOBALS["var2"] =& $var1; // visible also in global context
}
}

global_references(false);//变量$var2赋值为对$var1的引用,但是它的值在函数外不可见,他是一个局部变量
echo "var2 is set to '$var2'\n<br>";
global_references(true);//将$var2注册到全局变量数组中赋值为对变量$var1的引用,他是全局可见的
echo "var2 is set to '$var2'\n";
?>

阅读全文

与phpfunctionuse相关的资料

热点内容
海康摄像萤石云服务器 浏览:814
安卓手机怎么改安卓版名 浏览:147
雅思听力807词汇pdf 浏览:897
黄豆私人加密 浏览:192
java分钟转换小时 浏览:245
易语言服务器如何提高 浏览:591
网站主机服务器地址查看 浏览:859
算法学不会能当程序员吗 浏览:119
程序员技术交流研究 浏览:814
javaresponse文件 浏览:734
linuxrar压缩文件夹 浏览:218
魅蓝手机连接不上服务器怎么回事 浏览:379
工行app怎么改已绑定银行卡 浏览:533
oppo芯片程序员 浏览:602
oppok3应用怎么加密 浏览:327
电脑软盘怎么加密码 浏览:815
服务器光交换机有什么用 浏览:708
app上怎么拍蛙小侠 浏览:217
志高聊天app怎么下载 浏览:635
邮政app怎么不能扫付款码 浏览:559