2-php学习笔记之控制语句,函数


前言


以下都是自己的一些学习笔记,可能有写的不对的地方,还望各位大佬体谅和加以指正。


讲解本章之前,我先给上文的数组补充一点:
关于数组的定义,在php中有两个定义方法一个是像上文一样使用array()函数。
第二种方法就是使用[]直接定义,代码如下:

<?php
$list = ['a', 'b', 'c'];

// 遍历列表
foreach($list as $i){
	echo $i;
}
?>

那么接下来让我们继续下面的学习:


一、4. 运算符

在了解控制语句之前,我们先来了解一下php的运算符

基本运算符

在这里插入图片描述
在PHP中值得注意的是字符串连接符并不是像其他语言一样使用 + 在PHP中字符串连接要使用 .

赋值运算符

在这里插入图片描述

递增/递减运算符

在这里插入图片描述

比较运算符

在这里插入图片描述

逻辑运算符

在这里插入图片描述

三元运算符

这个算是PHP中比较有特点的运算符了,具体是使用方法如下:

<?php
var_dump(3 > 2?'判断正确返回':'判断错误返回'); // 判断正确返回
?>

在PHP中运算符同其他语言差不多,只要注意字符串连接的符号是 . 号 。
Tips:在PHP中 and 还可以使用 &&or 可以使用 || ,这在其他语言中是没有的。

二、控制语句

条件控制语句

在PHP中有两种条件语句 一种是if条件语句第二种是switch条件语句。

if 条件语句

if

在条件成立时执行代码

<?php
$a = 2;

if ($a == 2)
{
	echo "a = 2";
}
?>
if…else

在条件成立时执行一块代码,条件不成立时执行另一块代码

<?php
$a = 2;

if ($a == 2)
{
	echo "a = 2";
}
else
{
	echo "a != 2";
}
?>
if…else if …else

在若干条件之一成立时执行一个代码块

<?php
$a = 2;

if ($a == 2)
{
	echo "a = 2";
}
else if ($a == 3)
{
	echo "a = 3";
}else 
{	
	echo "a != 2 and a != 3";
}
?>

seitch 条件语句

在若干条件之一成立时执行一个代码块

<?php
$a = 2;

switch ($a){
    case 5; // 等于5就执行下面的代码
    echo "5555";
    break;

    case 6;
    echo "6666";
    break;

    case 7;
    echo "7777";
    break;

    default; // 设置一个默认值
    echo "default";

}
?>

循环语句

while

只要指定的条件成立,则循环执行代码块

<?php
$flag = 0;
// 循环语句
while (true){
    echo "<br>".$flag;
    if ($flag == 100){
        break; // 跳出
    }

    $flag++;
}
?>

do…while

首先执行一次代码块,然后在指定的条件成立时重复这个循环

<?php
$i = 0;

do{
    echo $i;
    $i++;
}while($i < 99);
?>

for

循环执行代码块指定的次数

打印1-99:

<?php
for ($i=0;$i<= 99;$i++){
    echo "<br>".$i;
}
?>

foreach

foreach 语句多用来遍历列表

<?php
$list = array('a', 'b', 'c');

foreach ($list as $l){
    echo "<br>".
        $l;
}
?>

三、函数

PHP 的真正力量来自它的函数:它拥有超过 1000 个内建的函数。
PHP 用户定义函数
除了内建的 PHP 函数,我们可以创建我们自己的函数。

函数是可以在程序中重复使用的语句块。
页面加载时函数不会立即执行。
函数只有在被调用时才会执行。

在 PHP 创建用户定义函数
用户定义的函数声明以单词 “function” 开头:

语法

<?php
function functionName() {
  被执行的代码;
}
?>

注意:函数名能够以字母或下划线开头(而非数字)。

注意:函数名对大小写不敏感。

Tips:函数名应该能够反映函数所执行的任务。

在下面的例子中,我们创建名为 “writeMsg()” 的函数。打开的花括号({)指示函数代码的开始,而关闭的花括号(})指示函数的结束。此函数输出 “Hello world!”。如需调用该函数,只要使用函数名即可:

实例

<?php
function sayHi() {
  echo "Hello world!";
}

sayhi(); // 调用函数
?>

PHP 函数参数

我们可以通过参数向函数传递信息。参数类似变量。
参数被定义在函数名之后,括号内部。您可以添加任意多参数,只要用逗号隔开即可。
下面的例子中的函数有一个参数($fname)。当调用 familyName() 函数时,我们同时要传递一个名字(例如 Bill),这样会输出不同的名字,但是姓氏相同:

<?php
function familyName($fname) {
  echo "$fname Zhang.<br>";
}

familyName("Li");
familyName("Hong");
familyName("Tao");
familyName("Xiao Mei");
familyName("Jian");
?>

PHP 默认参数值

下面的例子展示了如何使用默认参数。如果我们调用没有参数的 setHeight() 函数,它的参数会取默认值:

实例

<?php
function setHeight($minheight=50) {
  echo "The height is : $minheight <br>";
}

setHeight(350);
setHeight(); // 将使用默认值 50
setHeight(135);
setHeight(80);
?>

PHP 函数 - 返回值

如需使函数返回值,请使用 return 语句:

实例

<?php
function sum($x,$y) {
  $z=$x+$y;
  return $z;
}

echo "5 + 10 = " . sum(5,10) . "<br>";
echo "7 + 13 = " . sum(7,13) . "<br>";
echo "2 + 4 = " . sum(2,4);
?>

匿名函数

匿名函数就是没有名字的函数。
将一个匿名函数"赋值"给一个变量——此时该变量就代表该匿名函数了!

<?php
$callfunction=function($name){
    return $name;
};
echo $callfunction('moonsec'); // 调用匿名函数
?>

回调函数

回调函数是指调用函数的时候将另一个函数作为参数传递到调用的函数中,而不是传递一个普通的变量作为参数
使用回调函数是为了可以将一段自己定义的功能传到函数内部使用

实例

<?php
    function Speak($a,$b){
        echo "He can speak ".$a;
        echo "<br>";
        echo "She can speak ".$b;
    }
     
    function Speak_Test(){
        return call_user_func_array('Speak',array('Chinese','English'));   
    }
    Speak_Test()
?>

PHP 变量作用域

在 PHP 中,可以在脚本的任意位置对变量进行声明。
变量的作用域指的是变量能够被引用/使用的那部分脚本。
PHP 有三种不同的变量作用域:

  1. local(局部)
  2. global(全局)
  3. static(静态)

Local 和 Global 作用域

函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
下面的例子测试了带有局部和全局作用域的变量:

<?php
$x=5; // 全局作用域

function myTest() {
  $y=10; // 局部作用域
  echo "<p>测试函数内部的变量:</p>";
  echo "变量 x 是:$x";
  echo "<br>";
  echo "变量 y 是:$y";
} 

myTest();

echo "<p>测试函数之外的变量:</p>";
echo "变量 x 是:$x";
echo "<br>";
echo "变量 y 是:$y";
?>

在上例中,有两个变量 $x$y,以及一个函数 myTest()$x 是全局变量,因为它是在函数之外声明的,而 $y 是局部变量,因为它是在函数内声明的。

如果我们在 myTest() 函数内部输出两个变量的值,$y 会输出在本地声明的值,但是无法 $x 的值,因为它在函数之外创建。

然后,如果在 myTest() 函数之外输出两个变量的值,那么会输出 $x 的值,但是不会输出 $y 的值,因为它是局部变量,并且在 myTest() 内部创建。

注意:您可以在不同的函数中创建名称相同的局部变量,因为局部变量只能被在其中创建它的函数识别。

PHP global 关键词

global 关键词用于在函数内访问全局变量。
要做到这一点,请在(函数内部)变量前面使用 global 关键词:
实例

<?php
$x=5;
$y=10;

function myTest() {
  global $x,$y;
  $y=$x+$y;
}

myTest();
echo $y; // 输出 15
?>

PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。
上面的例子可以这样重写:

<?php
$x=5;
$y=10;

function myTest() {
  $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
} 

myTest();
echo $y; // 输出 15
?>

PHP static 关键词

通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。

要完成这一点,请在您首次声明变量时使用 static 关键词:

实例

<?php

function myTest() {
  static $x=0;
  echo $x;
  $x++;
}

myTest(); // 0
myTest(); // 1
myTest(); // 2

?>

然后,每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息。///
注意:该变量仍然是函数的局部变量。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值