首页 > 开发 > PHP > 正文

一步一步学习PHP(3) php 函数

2024-05-04 22:10:03
字体:
来源:转载
供稿:网友

1. 方法概述

首先,写一个最简单的函数,大家看一眼就可以了:

<html><head>  <title>HelloPHP</title></head><body>  <?php    function CustomPrint($str)    {      for($i=0;$i<5;$i++)      {        echo($str);        echo('<br/>');      }    }        CustomPrint("Hello");  ?></body></html>

通过这个例子,相信大家都了解了PHP中函数的大致写法,至于语法上,和其他类C语言差别不大,也都是while,for,if等,至于其他不同之处,会在之后的文章中,逐渐来说。

OK,那我来总结一下,这个方法的要点:

A. PHP的方法用function来声明,这一点类似于我们熟悉的Javascript.

B. 在使用变量必须要以美元符($)来开头。

2. 参数的引用传递和值传递

参数的值传递和引用传递,相信每个人在学习C语言时都接触到了,在此用C#来写例子:

public void Swap(int a, int b){  int temp = a;  a = b;  b = temp;}public void Swap(ref int a, ref int b){  int temp = a;  a = b;  b = temp;}

那在这里就写一个PHP版本。

  <?php    function Swap1($a,$b)    {      $temp=$a;      $a=$b;      $b=$temp;    }    function Swap2(&$a,&$b)    {      $temp=$a;      $a=$b;      $b=$temp;    }        function CustomPrint($str)    {      echo($str);      echo("<br/>");      }        $a=1;    $b=2;    Swap1($a,$b);    CustomPrint("值传递的结果:");    CustomPrint('$a='.$a);    CustomPrint('$b='.$b);    $a=1;    $b=2;    Swap2($a,$b);    CustomPrint("引用传递的结果:");    CustomPrint('$a='.$a);    CustomPrint('$b='.$b);  ?>

在这个例子中:有两点我需要说明:

A. 值传递和引用传递的区别在于在参数前的“&”.

B. CustomPrint('$a='.$a);在这句中,需要特殊说明一下单引号和双引号的区别,他们之间只有一个区别,就是能否解析变量名,这个例子就足够说明问题了:

  <?php     $a=1;    echo("$a");    echo("<br/>");    echo('$a');  ?>

 

image 

最后,说下关于性能的问题,在按值传递时,PHP需要进行复制,然后再传递,这样如果那些大对象或者字符串的话,就会不仅仅耗费时间,而且对空间也是一种浪费。这时,如果进行引用传递,就免去了耗费性能的复制操作。对性能提高很有好处。

3. 作用域问题

在C#中,由于变量在使用之前必须声明,因此会涉及到一个作用域和子作用域的概念,而在PHP中则没有这样的概念。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表