坏狼的PHP学习课程之第2天

当实参个数<形参个数
时php会发出警示,因为php的表达机制会感到,有参数被定义了却绝非被运用,那很只怕会潜濡默化函数的功力。所以会发出警告。然则,当
实参个数>形参个数
时,php是不会报错的,它只会取前边的多少个参数,多余的则将会吐弃。

php中援引的用法:

神蹟在网络看到关于php的伪重载的难点,有一些兴趣便商量了眨眼间间。下边小编将说说php怎么样运用func_get_arg,func_get_args,func_num_args完成函数的伪重载难点。

1.大旨写法:

在PHP中编辑函数,一般意况下调用函数的时候,改变的值都是形参而不是实参.但是倘若在形参中参加地方符时候就能变动实参的值,为何?

  1. 变量的援引赋值: $a = &$b

  2. 函数调用时的引用参数字传送递

率先说说方法重载的裨益:

 echo”买设想主机找坏狼!www.winshell.cn\n”; 
 //这里是php要写内容! “\n”是代表换行 “;”代表停止 行多的话要加.要不会报错.

请看上面包车型的士例子:

    1) 开始的一段时代php是在调用时通过&符号传递援用类型的变量, 比方: func(&$arg);

落到实处格局重载能够绝不为了对两样的参数类型或参数个数,而写八个函数。八个函数用同三个名字,但参数表,即参数的个数或(和)数据类型可以分裂,调用的时候,固然艺术名字同样,但基于参数表能够活动调用对应的函数。假使大家使用reflector去查看微软写的.net的基类库的话,大家得以发掘她采取过多的方式重载,那样大家在调用的时候,就不供给记那么多的法子名称,而是掌握了艺术的机能就足以一直的给她传递分化的参数,编写翻译器会鲜明的敞亮大家调用了哪多个艺术。

2.程式的执:
程式的跑法 由上到下、由右到左,
境遇特殊调控能力悔过自新,
先后甘休的主意,跑完截止、错误终止、指令停止.
3.写程序时要留神
毫无的变数尽量不要用,举个例子a=123,但顺序用不到,便是萧条了,程序也会变慢.降低测量试验性写法,减低废码.举个例子推断对方是男女外星人什么的.
勘探程式的弹性(无需写的都毫无用了,方便除错,按tab键换行.同类用同对起.养成优秀的写程序习贯.要有法规)
缩排、括弧要对称.  资料量的支配(变数名称的长度,准则短些好)变数比方:aaa.php?id=2222
4.引用档案格局:
require(“档案名称”); 引入失利就挂(Error)报错!   好记单词”瑞快尔德”
include(“档案名称”); 引进失利就不鸟它(Warning)出个警示! 好记单词”因可入德”
还恐怕有任何的require(“db.txt”); include(“db.txt”); 引用同目录下的db.txt文件.
就算db.txt荒诞不经,require写法会个页面出错。
假如db.txt不设有,include写法只会当前行报错。
5.程式注释
// 单行注释,两撇    /* */ 斜星 – 星斜
/* 这里写要讲明的剧情,怎么写都行,写多少都行!你看不到笔者 */
6.常数与变数
常数 ex.比方圆周率  正是平时大范围的数,呵呵!
变数 ex. $x, $y, $z..
7.常数的形态
true 真 
fals 假 
8.变数的形制
string 字串
integer 整数 123456780
double 浮点数 有小数点的1.2
array 阵列 
object 物件
9.变数的应用 (\” 变引号 \\反斜线 \n 换行 \r 送出 \t 跳位TAB)
运用保留字
加上$拿去用
形象调换松散
免宣告
有关全域变数 global $变数
10.变数的引号
单引号”没什么功效.
双引号””php帮你管理.
11.$a = “坏狼”;
  $b = “卖虚构主机!”;
  echo”$a! $a! 是$b!!!”;
12.运算符号
数字、文字、逻辑..
程序主要的一环
理解、查表..
13.算术运算
+加法 -减法 *乘法 /除法 %取余数(8/3余数是2) ++累加1 –递减1
14.字串的演算
.点 =等于
15.安装运算
= 将左边的值连到侧面
+= 将左侧的值加到左边
-= 将侧面的值减到左臂
*= 将左臂的值乘到左侧
/= 将左臂的值除到右边手
%= 将左臂的值对侧边取余数
.= 将右侧的字串加到左侧
前几天自个儿测验写的代码!还要在同目录构造建设1个db.txt里面写写无聊的东东

复制代码 代码如下:

    2) 后来, 函数的引用类型参数被鲜明为需求在函数表明时定义, 不比:
function func(&$arg);

但是在PHP中向来不函数重载那几个概念,让十分多时候大家鞭长莫及实行一些管理,乃至有的时候不得不在函数前边定义好N个参数来解决有关难点,而php提供了多少个函数,举个例子:func_get_arg,func_get_args,func_num_args
却能够直接解决有关难题。具体举个示例代码如下:

复制代码 代码如下:

<?php
//编写八个函数swap(),测验该函数的实参值无改造
function swap($a,$b) {
echo “<p>进入swqp()函数前<br>\n”;
echo “交换前:形参a=$a,形参b=$b<br>\n”;
$c=$b;
$a=$b;
$b=$c;
echo “交换后:形参a=$a,形参b=$b<br>\n”;
echo “退出swap()函数<br></p>\n”;
}
$variablea=5;
$variableb=10;
echo “调用swap()函数前: “;
echo “实参a=$variablea,实参b=$variableb<br>\n”;
swap($variablea,$variableb);
echo “调用swap()函数后: “;
echo “实参a=$variablea,实参b=$variableb<br>\n”;
?>

       注: 援用注解时定义引用类型参数后, 运营时引用参数传递被放任,
需求在php.ini中扩充allow_call_time_pass_reference来开启.

 代码如下

<html> 
 <head> 
 <title>买虚构主机找坏狼</title> 
 <meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″> 
 </head> 
 <body> 
 <?php  
 require(“db.txt”); 
   //引用档案的艺术你require(“档案内容!”); 借使开掘不了档案内容,就集会场全体甘休! 
 echo”<br>”; 
365bet体育在线网投, //这里展现1个换行<br> 
   include(“db.txt”); 
   //引用档案的法子你include(“档案内容!”); 要是发掘不了档案内容,只在当行出荒唐提醒! 
   echo”<br>”; 
   //这里展现1个换行<br> 
 echo”买虚构主机找坏狼!<br>www.winshell.cn\n”;  
 //这里是php要写内容! “\n”是意味换行 “;”停止,行多的话要加 
 /* 你看不到笔者!你看不到自身!你看不到笔者!你看不到本人! */ 
  ?> 
  <br> 
  <?php 
    $a = “坏狼”; 
      $b = “卖虚构主机的!”; 
 echo”$a! $a! 是$b!!!”;  
 echo”<br>”;  
 echo’$a! $a! 是$b!!!//这里是单引号部分,就不做处理了.’; //单引号内不做拍卖! 
   ?> 
   <br> 
   <?php 
       $a = “是啊”; 
       $b = “好哦!”; 
       $c = $a . $b ; //把$a和$b的原委加起来成$c 
   echo $c. ” <p>”; 
      $c = $c . $a .$b; 
   echo $c. “<p>”;      
   ?>     
   <?php 
   $a = “8”; 
   $b = “2”; 
   $c = “3”; 
   echo $a+$b. “<br>\n”; // 这个\n 查看源文件的时候探访到换行了! 
   echo $a-$b. “<br>\n”; 
   echo $a*$b. “<br>\n”; 
   echo $a/$b. “<br>\n”; 
   echo $a%$b. “<br>\n”; 
   $a++;  
   echo $a.”<br>\n”;   
   $c–;  
   echo $c.”<br>\n”; 
    ?> 
 </body> 
</html> 

复制代码 代码如下:

  1. 函数重临援引类型, 这种应用措施亟待表明函数时, 在函数名前扩大&符号,
    並且, 在调用时, 要用援引赋值格局, 譬喻:

<?php
function  testOne($a) {
echo (‘三个参数就这样 ‘);
}
function testTwo($a, $b) {
 echo (‘多少个参数的就好像此 ‘);
}
function testThree($a, $b, $c) {
 echo (‘呵呵,那是多个参数的 ‘);
}
function test() {
 $argNum = func_num_args();
 // 这一段其实能够用 $_arg = func_get_args()
来获得全体的参数,只是要用数组而已,不便于作者上面包车型地铁表述,呵呵
 for ($i = 0; $i < $argNum; $i++) {
  $_arg_{$i} = func_get_arg($i);
 }
 switch ($argNum) {
  case 1 :
   testOne($_arg_1);
  break ;
  case 2 :
   testTwo($_arg_1, $_arg_2);
  break ;
  case 3 :
   testThree($_arg_1, $_arg_2, $_arg_3);
  break ;
  default :
   echo (‘ 这是从未有过参数的情事 ‘);
  break ;
 }
}
/**
 * 例子的兑现
 */
test();
echo (‘<br>’);
test(1);
echo (‘<br>’);
test(1, 2);
echo (‘<br>’);
test(1, 2, 3);
// 这么些只是在函数中的运用,其实最根本的依然在类中的运用
// 假如这个用到类里面笔者就不需求操心构造函数是还是不是有多少个参数了,不是啊?
// 类里面包车型客车利用只举三个简约的例子
class test{
 var $a = 0;
 var $b = 0;
 function test() {
  $argNum = func_num_args();
  $_arg = func_get_args();
  switch ($argNum) {
   case 1 :
    $this->test1($_arg[0]);
   break ;
   case 2 :
    $this->test2($_arg[0], $_arg[1]);
   break;
   default :
    $this->a = 0;
    $this->b = 1;
   break;
  }
 }
 function test1($a) {
  $this->a = $a;
 }
 function test2($a, $b) {
  $this->a = $a;
  $this->b = $b ;
 }
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注