php使用使用外部变量的值,PHP实现函数内修改外部变量值的方法示例

本文通过示例详细介绍了PHP如何在函数内部修改外部变量的值,包括使用全局变量、返回值和引用调用三种方法,并探讨了它们的优缺点和性能影响。最后给出了关于避免全局变量使用的建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHP实现函数内修改外部变量值的方法示例

本文实例讲述了PHP实现函数内修改外部变量值的方法。分享给大家供大家参考,具体如下:

直接上代码,如下:

$a_str = 'ab';

function change_val(){

global $a_str; // 通过设置全局变量,修改变量值

//$a_str = 'abc';

$a_str = $a_str.'abc';

}

echo $a_str."
";

change_val();

echo $a_str."
";

echo str_repeat('#',20)."
";

$b_str = 'ab';

function change_val_1($s){

$s = 'abc';

//$s = $s.'abc';

return $s; // 通过返回值,修改变量值

}

echo $b_str."
";

$b_str = change_val_1($b_str);

echo $b_str."
";

echo str_repeat('#',20)."
";

$c_str = 'ab';

function change_val_2(&$c_str){//引用调用

//$c_str = 'abc';

$c_str = $c_str.'abc';

}

echo $c_str."
";

change_val_2($c_str);

echo $c_str."
";

运行结果:

ab

ababc

####################

ab

abc

####################

ab

ababc

总结:

尽量少用全局变量。全局变量会增加内存使用量。

传值调用会创建一个副本,数据量很大时,会影响性能。

引用调用时,函数接收的是变量地址,不会创建数据副本,效率高 。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php常用函数与技巧总结》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《PHP数组(Array)操作技巧大全》

希望本文所述对大家PHP程序设计有所帮助。

时间: 2018-12-28

6b5aa0751a6f1e6a9d0b665a02cc1f46.gif

PHP mysqli_rollback() 函数 关闭自动提交,做一些查询,提交查询,然后回滚当前事务: <?php // 假定数据库用户名:root,密码:123456,数据库:codingdict $con=mysqli_connect("localhost","root","123456","codingdict"); if (mysqli_connect_errno($con)) { echo "连接

PHP Date/Time 简介 Date/Time 函数允许您从 PHP 脚本运行的服务器上获取日期和时间.您可以使用 Date/Time 函数通过不同的方式来格式化日期和时间. 注释:这些函数依赖于服务器的本地设置.使用这些函数时请记住要考虑夏令时和闰年. 安装 PHP Date/Time 函数是 PHP 核心的组成部分.无需安装即可使用这些函数. Runtime 配置 Date/Time 函数的行为受到 php.ini 中设置的影响: 名称 描述 默认 PHP 版本 date.timezo

实例 向用户自定义函数发送数组中的值,并返回一个字符串: <?php function myfunction($v1,$v2) { return $v1 . "-" . $v2; } $a=array("Dog","Cat","Horse"); print_r(array_reduce($a,"myfunction")); ?>  定义和用法 array_reduce() 函数向用户自定义函数发

6b5aa0751a6f1e6a9d0b665a02cc1f46.gif

PHP mysqli_stat() 函数 创建 SSL 连接: <?php // 假定数据库用户名:root,密码:123456,数据库:codingdict $con=mysqli_connect("localhost","root","123456","codingdict"); if (mysqli_connect_errno($con)) { echo "连接 MySQL 失败: " . my

6b5aa0751a6f1e6a9d0b665a02cc1f46.gif

PHP mysqli_select_db() 函数 更改连接的默认数据库: 删除数据库 <?php // 假定数据库用户名:root,密码:123456,数据库:codingdict $con=mysqli_connect("localhost","root","123456","codingdict"); if (mysqli_connect_errno($con)) { echo "连接 MySQL 失败:

6b5aa0751a6f1e6a9d0b665a02cc1f46.gif

PHP是功能强大的网站开发工具之一,它包含各种用于各种目的的内置函数,其中explode()函数是一个内置函数,主要用于将字符串拆分为不同的字符串. 含义: explode()函数基于字符串分隔符拆分字符串,即它将字符串拆分为出自分隔符的位置.此函数返回一个数组,其中包含通过拆分原始字符串形成的字符串,我们可以通过访问数组来轻松检索字符串的每个部分 它的语法结构如下: explode(separator,string,limit) separator:表示指定字符串将要分割的关键点,换句话说,只

6b5aa0751a6f1e6a9d0b665a02cc1f46.gif

PHP mysqli_sqlstate() 函数 返回最后一个 MySQL 操作的 SQLSTATE 错误代码: <?php // 假定数据库用户名:root,密码:123456,数据库:codingdict $con=mysqli_connect("localhost","root","123456","codingdict"); if (mysqli_connect_errno($con)) { echo &quot

php中可以用array_chunk将一个数组分隔成若干个数组. 数组 $array = ['name' => 'tom', 'age' => 20, 3, 4, 5, 'a', 'b']; 每3个分割一组 $chunk_result = array_chunk($array, 3); 结果 Array ( [0] => Array ( [0] => tom [1] => 20 [2] => 3 ) [1] => Array ( [0] => 4 [1] =

6b5aa0751a6f1e6a9d0b665a02cc1f46.gif

PHP mysqli_ssl_set() 函数 实例 创建 SSL 连接: <?php $con=mysqli_init(); if (!$con) { die("mysqli_init failed"); } mysqli_ssl_set($con,"key.pem","cert.pem","cacert.pem",NULL,NULL); if (!mysqli_real_connect($con,"loca

6b5aa0751a6f1e6a9d0b665a02cc1f46.gif

PHP mysqli_set_charset()函数 设置默认客户端字符集: <?php // 假定数据库用户名:root,密码:123456,数据库:codingdict $con=mysqli_connect("localhost","root","123456","codingdict"); if (mysqli_connect_errno($con)) { echo "连接 MySQL 失败: &quo

stat函数讲解 表头文件: #include #include 定义函数: int stat(const char *file_name, struct stat *buf); 函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中 返回值: 执行成功则返回0,失败返回-1,错误代码存于errno 错误代码: ENOENT         参数file_name指定的文件不存在     ENOTDI

9ab7f5651a31ca6e6d4e004a4aa59a70.png

PHP mysqli_stmt_init() 函数 初始化声明并返回 mysqli_stmt_prepare() 使用的对象: <?php // 假定数据库用户名:root,密码:123456,数据库:codingdict $con=mysqli_connect("localhost","root","123456","codingdict"); if (mysqli_connect_errno($con)) { ech

功能:使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回 函数格式:stringObj.match(rgExp) stringObj为字符串必选 rgExp为正则表达式必选项 返回值:如果能匹配则返回结果数组,如果不能匹配返回null 复制代码 代码如下:

功能介绍:该方法的返回值是布尔值,通过该值可以匹配字符串中是否存在于正则表达式相匹配的结果,如果有匹配内容,返回ture,如果没有匹配内容返回false,该方法常用于判断用户输入数据的合法性,比如检验Email的合法性 基本语法:objReg.test(objStr) objReg 必选项 RegExp对象名称 objStr 要进行匹配检测的字符串 讲解实例代码: 复制代码 代码如下:

register_sidebar()(创建侧边栏) 建立一个侧边栏,用来放置小工具.这个函数使用的时候请放在一个函数里,挂载到 "widgets_init" 钩子. 用法 register_sidebar( $args ); 参数 $args (字符串 | 数组)(可选)要创建的侧边栏的参数. 默认值: $args = array( 'name' => __( 'Sidebar name', 'theme_text_domain' ), 'id' => 'unique-si

对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NULL. mysql> select ASCII('2');    -> 50mysql> select ASCII(2);    -> 50mysql> select ASCII('dx');    -> 100也可参见ORD()函数. ORD(str) 如果字符串str最左面字符是一个多字节

一.什么是匿名函数? 在Javascript定义一个函数一般有如下三种方式: 函数关键字(function)语句: 复制代码 代码如下: function fnMethodName(x){alert(x);} 函数字面量(Function Literals): 复制代码 代码如下: var fnMethodName = function(x){alert(x);} Function()构造函数: 复制代码 代码如下: var fnMethodName = new Function('x','al

.Net编程中最经常用的元素,事件必然是其中之一.无论在ASP.NET还是WINFrom开发中,窗体加载(Load),绘制(Paint),初始化(Init)等等. "protected void Page_Load(object sender, EventArgs e)"这段代码相信没有人不熟悉的.细心一点一定会发现,非常多的事件方法都是带了"object sender, EventArgs e"这两个参数.这是不是和委托非常相似呢? 一.委托(有些书中也称为委派)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值