首页 > 后端开发 > 正文

按引用传递参数用php来表示圆柱的表面积?(PHP传值,引用和传址的区别)

2024-07-18 22:54:43 | 我爱编程网

最近经常有小伙伴私信询问按引用传递参数用php来表示圆柱的表面积?(PHP传值,引用和传址的区别)相关的问题,今天,我爱编程网小编整理了以下内容,希望可以对大家有所帮助。

本文目录一览:

按引用传递参数用php来表示圆柱的表面积?(PHP传值,引用和传址的区别)

按引用传递参数用php来表示圆柱的表面积?

下面是一个使用按引用传递参数的 PHP 函数,用于计算圆柱的表面积:
function cylinder_surface_area($radius, $height, &$surface_area) {
$surface_area = 2 * pi() * $radius * $height + 2 * pi() * pow($radius, 2);
}

// 示例用法
$r = 3; // 圆柱底面半径
$h = 5; // 圆柱高度
$s = 0; // 圆柱表面积

cylinder_surface_area($r, $h, $s);
echo "圆柱表面积为: " . $s;

在这个函数中,前两个参数 $radius 和 $height 分别表示圆柱的底面半径和高度。第三个参数 $surface_area 是一个按引用传递的变量,用于存储计算得到的圆柱表面积值。
在函数体中,调用内置的 pi() 函数来获取圆周率π的值。然后使用公式计算圆柱的表面积,并将结果存储在 $surface_area 变量中。
在示例用法中,我们定义了圆柱的底面半径和高度,然后调用 cylinder_surface_area() 函数来计算表面积。最后,使用 echo 函数将结果输出到屏幕上。
请注意,由于 $surface_area 是通过按引用传递的方式传递给函数的,因此在函数结束后,它将包含计算得到的表面积值。

按引用传递参数用php来表示圆柱的表面积?(PHP传值,引用和传址的区别)

PHP传值,引用和传址的区别

实参(被调)、行参(主调)
函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。
--传值:
是把实参的值赋值给行参,相当于复制一块同样的空间那么对行参的修改,不会影响实参的值
--传地址:
是传值的一种特殊方式,只是他传递的是地址,不是普通的如int那么传地址以后,实参和行参都指向同一个对象--传引用:
真正的以地址的方式传递参数
传递以后,行参和实参都是同一个对象,只是他们名字不同而已对行参的修改将影响实参的值
即传址时只需在函数调用时在参数的前面加上"&"号即可。将函数外部的值的内存地址传递给内部的参数,在函数内部的所有操作都会改变函数外部参数的值。
值传递(passl-by-value): 压栈的是参数的副本。任何的修改是在副本上作用,没有作用在原来的变量上。
过程中:被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。
传指针(pointer): 压栈的是指针变量的副本。当你对指针解指针操作时,其值是指向原来的那个变量,所以对原来变量操作。
引用传递(pass-by-reference):压栈的是引用的副本。由于引用是指向某个变量的,对引用的操作其实就是对他指向的变量的操作。
过程中:被调函数的形式参数虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。
所谓值传递,就是说仅将对象的值传递给目标对象,就相当于copy;系统将为目标对象重新开辟一个完全相同的内存空间。
所谓引用,就是说将对象在内存中的地址传递给目标对象,就相当于使目标对象和原始对象对应同一个内存存储空间。如果对目标对象进行修改,内存中的数据也会改变。

按引用传递参数用php来表示圆柱的表面积?(PHP传值,引用和传址的区别)

PHP中按值传递和引用传递的区别

我爱编程网(https://www.52biancheng.com)小编还为大家带来PHP中按值传递和引用传递的区别的相关内容。

(1)按值传递:函数范围内对值的任何改变在函数外部都会被忽略 我爱编程网

(2)按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改

(3)优缺点:

A:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。

B.按引用传递则不需要复制值,对于性能提高很有好处。

<?php
    header('content-type:text/html;charset=utf-8');
    //探讨一下 array , null, 对象 ,资源的默认传递方式
    // 结论 (1) array 默认是值传递,通过加 & 可以引用传递
    //      (2)  null 默认是值传递,通过加 & 可以引用传递
    //      (3) 资源  是值传递.通过加 & 可以引用传递
    //        (4) 对象默认也是值传递,但是对象值传递是对象标识符    
    $hero = array('no1'=>'蝙蝠侠', 'no2'=>'超人');
    $hero2 = &$hero;
    $hero2['no1'] = '蜘蛛侠';
    echo '<pre>';
    var_dump($hero);
    
    var_dump($hero2);
    $a = null;
    $b = &$a;
    $b = 'abc';
    var_dump($a, $b);
   ?>

以上就是我爱编程网小编整理的内容,想要了解更多相关资讯内容敬请关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“按引用传递参数用php来表示圆柱的表面积?(PHP传值,引用和传址的区别)”相关推荐
php函数中传引用参数可以设置默认值吗
php函数中传引用参数可以设置默认值吗

php函数中传引用参数可以设置默认值吗php函数中传引用参数可以设置默认值吗是这个样子的,定义的参数与调用时的参数名称可以不同。带默认值的就是指当这些参数没有给出的时候可以按照预定义内容进行赋值。functiontext($i,$a="test1",$test="test2"){echo"{$i}";echo"{

2024-07-18 08:46:41
如何用java程序实现上传文件到指定的URL地址
如何用java程序实现上传文件到指定的URL地址

如何用java程序实现上传文件到指定的URL地址参考代码如下:importjava.io.*;/***复制文件夹或文件夹*/publicclassCopyDirectory{//源文件夹staticStringurl1="f:/photos";//目标文件夹staticStringurl2="d:/tempPhotos";publicstaticv

2024-04-07 04:15:03
请问PHP构造函数的含义 php this和self的区别
请问PHP构造函数的含义 php this和self的区别

PHP的其他方面PHP在数据库方面的丰富支持,也是它迅速走红的原因之一,它支持下列的数据库或是数据文件:Adabas、D、DBA、dBase、dbm、filePro、Informix、InterBase、mSQL、MicrosoftSQLServer、·MySQL、Solid、Sybase、Oracle、PostgreSQL而在Internet上它也支持了相当多的通讯协议(prot

2024-07-14 11:50:21
php正则表达式函数 超常用的PHP正则表达式收集整理
php正则表达式函数 超常用的PHP正则表达式收集整理

超常用的PHP正则表达式收集整理以下就是对超常用的PHP正则表达式进行的收集整理,为了方便大家更快更好的掌握php正则表达式。一、表单验证匹配验证账号,字母开头,允许5-16字节,允许字母数字下划线:^[a-zA-Z][a-zA-Z0-9_]{4,15}$验证账号,不能为空,不能有空格,只能是英文字母:^\S+[a-zA-Z]$验证账号,不能有空格,不能非数字:^

2024-07-15 12:34:10
php函数 用自己的语言说出php中数组的常用函数和用法?
php函数 用自己的语言说出php中数组的常用函数和用法?

用自己的语言说出php中数组的常用函数和用法?array_filter:过滤数组中的无效元素,可以使用回调函数过滤array_map:使用回调函数依次处理所有元素implode:将一维数组转为特定符号隔开的字符串,explode: 将特定符号隔开的字符串转为一维数组sort/ksort:将数组进行升序排序array_unique:将数组元素去重array

2024-07-13 13:08:22
python:已知圆的半径求周长和面积(python计算圆的面积和周长)
python:已知圆的半径求周长和面积(python计算圆的面积和周长)

python:已知圆的半径求周长和面积程序思路:定义一个Circle类,在类中定义函数,初始化半径,在函数中将半径带入公式求出周长和面积并返回frommathimportpiclassCircle():def__init__(self,a):self.a=adefget(self):self.b=round(pi*self.a**2,2)self.i=roun

2024-01-13 07:15:27
PHP中,参数调用相应函数是如何实现的?
PHP中,参数调用相应函数是如何实现的?

PHP直接调用函数和调用另外一个文件中的函数的区别//如果是PHP文件中的函数,唯一的区别是:先引入外部文件,然后直接调用。//如果是外部类文件中的函数,需要引入,然后new 对象后,再调用该对象的函数。$msg=test_msg();function test_msg(){echo "";}//调用外部文件中的函数//首先引入文件include_once 'file.php';$msg=t

2024-07-13 21:50:55
输入圆的半径怎么求圆的面积和周长?
输入圆的半径怎么求圆的面积和周长?

python的题?(1)程序输出结果为:s=11解析:首先,给变量i赋值3,给变量j赋值4。然后,将2*j的值(8)赋给i,将i的值(3)赋给j。最后,计算得到s的值为i+j,即11。打印输出结果为"s=11"。(2)请提供具体的年、月、日输入。(3)可以用以下代码计算圆的面积和周长:```pythonimportmathradius=float(in

2023-12-28 12:09:18