PHP基础

这些都是我看着菜鸟教程,慕课网学习PHP的笔记,若是笔记有不对的地方,欢迎指正;
里面的知识点涉及到变量,作用域,常量,数据类型,运算符,结构语句if else,switch,for,foreach等

简介

Hypertext preprocessor 超文本预处理的字母缩写,是一种被广泛应用的开放源代码的多用途脚本语言,他可嵌入到HTML中,尤其适合web开发

简单输出示例:

<!DOCTYPE html>
<html>
<head>
<title>Example</title>
</head>
<body>

<?php
        echo "Hi, I'm a PHP script!";    打印输出字符
        ?>

</body>
</html>

php页面就是HTML。只不过在其中嵌入了一些代码来做一些事情,php代码被包含在特殊的起始符和结束符<?php和?>中,是的可以进出php模式;

和客户端javascript不同的是,php代码是运行在服务端的,如果在服务器上建立了如上列类似 的代码。则在运行该脚本后,客户端就能接收到其结果,但他们无法得知背后的代码时如何运作的,甚至可以将web服务器设置成让php处理所有的html文件,这么一来用户就无法得知服务端到底做了什么

php能做什么

  • PHP可以生成动态页面内容
  • PHP可以创建,打开,读取,写入,关闭服务器上的文件
  • PHP可以收集表单数据
  • PHP可以发送和接收cookie
  • PHP可以添加,删除,修改数据库中的数据
  • PHP可以限制用户访问网站上的一些页面
  • PHP可以加密数据
  • 通过PHP,不在限于输出HTML,可以输出图像,PDF文件,甚至Flash电影,可以输出任意的文本,比如XHTML和XML

使用PHP可以自由的选择操作系统和web 服务器,同时在开发时选择使用面对过程和面对对象,或者两者混合的方式是开发,虽然PHP4不支持OOP所有的标准,但很多代码仓库和大型的应用程序包括pear库仅使用opp代码开发,PHP5弥补了这一弱点。引入的完全的对象模型,使用PHP并不局限于输入HTML。php还能被用来动态输入图像、PDF文件甚至flash动画(使用libswf和ming),还能够非常简便的输出文本,例如XHTML以及任何其他形式的XML文件,php能够自动生成这些文件,在服务器开辟出一块动态内容的缓存,

php文件是什么

  • PHP文件可包含文本。html,javascript代码和php代码
  • php代码在服务器上执行,结果以纯HTML心事返回给浏览器
  • PHP文件的默认文件扩展名.php
PHP基本语法
// 单行注释
/* */ 多行注释
(一) PHP变量

变量时用于存储信息的容器

<?php
$x=5;
$y=6;
$z=$y+$x;
echo $z;
?>

PHP变量规则:

  • 变量以$符号开始,后面跟着变量的名称
  • 变量名必须以字母或者下划线字符开始
  • 变量名只能包含字母,数字以及下划线
  • 变量名不能包含空格
  • 变量名是区分大小写的( y 和 y和 yY是两个不同的变量)

(php语句和php变量都是区分大小写的)

创建(声明)PHP变量

<?php
$txt="hello world";
$x=5;
$y=10.5
?>
在上面的语句执行中,变量txt将保存值helloworld ,且变量x将保存值5
注释:当赋一个文本值给变量时,请在文本值两侧加上引号

PHP是一门弱类型语言

创建PHP变量时,不必向PHP声明该变量的数据类型

PHP会根据变量的值,自动把变量转换成正确的数据类型

在强类型的编程语言中,我们必须在时使用变量前先声定义变量的类型和名称

PHP变量作用域

变量的作用域是脚本中变量可被引用/使用的部分

PHP有四种不同的变量作用域

  • local
  • global:用于函数内访问全局变量,调用时在函数中的变量前加上global关键字
  • static
  • parameter

局部和全局作用域

在所有函数外部定义的变量,拥有全局作用域,除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。

局部作用域变量是在函数或代码块内定义的变量,只能在该函数或代码块内使用,无法在外部访问。当函数或代码块执行结束后,局部变量也会被销毁。

局部变量
function myFunction() {
   $x = 5; // 局部变量
   echo $x;
}

myFunction(); 局部输出
// 输出 5

echo $x; 全局输出
// 无法访问 $x,会导致错误
    
    以上实例中定义了$X变量,该变量是在函数内声明,是局部变量,所以在函数外输出局部变量时会出错

<?php
$x=5; // 全局变量

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

myTest(); //调用mytest函数并输出里面的值

echo "<p>测试函数外变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";
?>
运行结果:
测试函数内变量:

变量 x 为:
变量 y 为: 10

测试函数外变量:

变量 x 为: 5
变量 y 为:

如果要在一个函数中访问一个全局变量,需要使用global关键字
1. global关键字
<?php
$x=5;
$y=6;
function test()
{
	global $x,$y,$z,$r,$s;
    $z=$y+$x;
	$r=$y+$z;
	$s=7;
}
test();
echo $z;//输出z
echo "<br>";
echo $r;
echo $s;
?>
输出
11
17
7
以上实例表示,如果时在函数内定义的局部变量,在变量前面加上global关键字,也可以在外面使用,同样,定义的全局变量,在函数内也可以使用

php将所有的全局变量存储在一个名为$GLobals[index]的数组中,index保存变量的名称,这个数据可以在函数内部访问,也可以直接用来更新全局变量

<?php
$x=5;
$y=7;
function test()
{
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
test();
echo $y;
?>
	
	输出结果 12
	
在函数内更新全局变量时,globals必须全部为大写
2. static作用域

当一个函数完成时,他的所有变量通常都会被删除,如果希望某个局部变量不被删除,则在第一次声明变量时使用static关键字

然后,每次调用该函数时,该变量将会保留着函数前一次被调用的值

注释:该变量仍然时函数的局部变量

<?php 
function test()
{
    static $x=5;
    echo $x;
    $x++;
    echo PHP_EOL;   //换行
}   
    test();
    test();
	test();
	test();
?> 
输出结果
    5
	6
    7
    8

如果没有在$x前加static ,则四个输出结果都是5而不是5678
    如果加上了static ,则输出多少个test(),就会在x++的结果上在加1
3. 参数作用域

参数是通过调用代码将值传递给函数的局部变量

参数是在参数列表中声明的,作为函数声明的一部分

<?php
function myTest($x)
{
    echo $x;
}
myTest(8);
?>
结果显示为8
()里面的值可以自己填写
(二)echo和print语句

echo和print语句的区别

  • echo -可以输出一个或多个字符串
  • print -只允许输出一个字符串,返回值总为1

echo输出的速度比print快echo没有返回值,print有返回值1

1. echo

echo是一个结构语言,使用的时候可以不用加括号,也可以加上括号:echo或echo()

例如:使用echo命令输出字符串(字符串可以包含html标签)

<?php echo "

PHP,很有趣!

"; echo "hello,world!
"; echo "我要学php
"; echo "这是一个","字符串," "使用了", "多个", "参数。"; ?>

显示结果------------------------------------------------------------------------------------------------------

PHP 很有趣!

Hello world!
我要学 PHP!
这是一个字符串,使用了多个参数。

显示变量

array()函数用于创建数组

<?php $txt1="学习 "; $txt2="runoon.cpm"; $txt3=array("Volvo", "BWM" , "toyota"); echo "$txt1"; echo "
"; echo "在$test2 学习php"; echo "我车的品牌是 {$text3[02]}"; 02这个数字可以更改,表示的是array()数组里面的第二个 显示结果------------------------------------------------------------------------------------------------------ 学习 在runoon.cpm 学习php 我车的品牌是 toyota
2. print

print 同样是一个语言结构,可以使用括号,也可以不使用括号: 打印或 打印()。

显示字符串

> <?php 
>
> print "<h2>PHP 很有趣</h2>">
> print "hello,world<br>";
>
> print "我要学习 PHP">
> ?>
>
> 显示结果------------------------------------------------------------------------------------------------------
>
> ## PHP 很有趣!
>
> Hello world!
> 我要学习 PHP!

显示变量

 <?php
> $txt1="学习 PHP";
> $txt2="RUNOOB.COM";
> $cars=array("Volvo","BMW","Toyota");
>
> print $txt1;
> print "<br>";
> print "在 $txt2 学习 PHP ";
> print "<br>";
> print "我车的品牌是 {$cars[0]}";
> ?>
>
> 显示结果------------------------------------------------------------------------------------------------------
>
> 学习 PHP
> 在 RUNOOB.COM 学习 PHP
> 我车的品牌是 Volvo
3. EOF(heredoc)使用说明

EOF是一种在命令行shell(如sh,csh,ksh,bash,powershell和zsh)和程序语言(向perl,php,python和ruby)里定义一个字符串的方法。

使用概述:

    1. 必须后接分号,否则编译通不过
    2. EOF可以使用任意其他字符代替,只需保证结束标识
    3. 结束标识必须顶格独自站一行,即必须从行首开始,前后不能衔接任何空白和字符
    4. 开始标识可以不带引号或单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号
    5. 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与1q和qq的用法

实例

<?php
echo <<<EOF
        <h1>我的第一个标题</h1>
        <p>我的第一个段落。</p>
EOF;
// 结束需要独立一行且前后不能空格
?>
我的第一个标题

        
我的第一个段落。


注意:

1.以 <<<EOF 开始标记开始,以 EOF 结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号

2.开始标记和结束标记相同,比如常用大写的 **EOT、EOD、EOF** 来表示,但是不只限于那几个(也可以用:JSON、HTML等),只要保证开始标记和结束标记不在正文中出现即可。

3.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符 ., 来拼接,如下:

<?php
$name="runoob";
$a= <<<EOF
        "abc"$name    在EOF里面结尾不用加;
        "123"
EOF;
// 结束需要独立一行且前后不能空格
echo $a;
?>
输出内容为:
"abc"runoob
        "123"
  • 1.PHP 定界符 EOF 的作用就是按照原样,包括换行格式什么的,输出在其内部的东西;
  • 2.在 PHP 定界符 EOF 中的任何特殊字符都不需要转义;
  • 3.PHP 定界符 EOF
(三):PHP数据类型

PHP变量存储不同的类型的数据,不同的数据类型可以做不一样的事情

PHP支持以下几种数据类型

  • string(字符串)
  • integer(整型)
  • float(浮点型)
  • boolean(布尔型)
  • array(数组)
  • object(对象)
  • null (空值)
  • resource (资源类型)
1. PHP字符串 string

一个字符串是一串字符的序列,就像“hello world”;

你可以将任何文本放在单引号和双引号中

<?php
$x = "hello,world!"; 双引号
echo $x;
$x ='hello,world!'; 单引号
echo $x;
?>
2. php整型

整数是一个没有小数的数字

整数规则:

  • 整数必须至少有一个数字(0-9)
  • 整数不能包含逗号或者空格
  • 整数是没有小数点的
  • 整数可以是正数或负数
  • 整数可以用三种格式来指定:十进制,十六进制(以0x为前缀),或八进制(前缀为0)

以下实例测试不同的数字

var_dump()函数,判断一个变量的类型和长度,并输出变量的数值,如果变量有值,则输出是变量的值,并返回数据类型

<!DOCTYPE html>
<html>
    <body>
       <?php>
  $x = 5985  ;
  var_dump($x);
  echo "<br>";
  $x =-345;  //负数
  var_dump($x);
  echo "<br>";
  $x = 0x8c;  //十六进制
  var_dump($x);
  echo "<br>";
  $x = 047;     //八进制
  var_dump($x);  
    ?>
        
    </body>
</html>


结果- - - - - - - - - - - - -- - - --- ----- ------ ----- --- --- -- --  - -- - -- ---- ---- ---- ----
int(5985)
int(-345)
int(140)
int(39)
3. PHP浮点型

浮点数是带小数部分的数字,或是指数形式

在以下实例中测试不同的数字

<!DOCPYTE html>
<html>
    <body>
        <?php
        $x =10.365;
        var_dump($x);
        echo "<br>";
        $x=2.4e3;
        var_dump($x);
        echo "<br>";
        $x=8E-5;
        var_dump($x);
       ?>    
    </body>
</html>
输出结果-----------------------------------------------------------------------------------------------

float(10.365)
float(2400)
float(8.0E-5)
4. PHP布尔型

布尔型可以是true或False;

$x=true;

$y=flase;

布尔型通常用于条件判断

5. PHP数组 array函数

数组可以在一个变量中存储多个值

<!DOCPYTE html>
<html>
    <body>
        <?php
       $x=array("1" , "23" , "typora");
	   var_dump($x);   //也可以改为echo "{$x[00]}",则输出结果为1
       ?>    
    </body>
</html>
输出结果----------------------------------------------------------------------------------------------

   
        array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(2) "23"
  [2]=>
  string(6) "typora"
}
6. PHP对象

对象数据类型也可以用于存储数据

在PHP中,对象必须声明

首先你必须使用class关键字声明类对象,类是可以包含属性和方法的结构

然后我们在类中定义数据类型,然后在实例化的类中使用数据类型

<!DOCTYPE html>
<html>
    <body>
        <?php>
  class Car
{
    var $color;
    function __construct($color="green") {
      $this->color = $color;
    }
    function what_color() {
      return $this->color;
    }
}

function print_vars($obj) {
   foreach (get_object_vars($obj) as $prop => $val) {
     echo "\t$prop = $val\n";
   }
}

// 实例一个对象
$herbie = new Car("white");

// 显示 herbie 属性
echo "\therbie: Properties\n";
print_vars($herbie);

?>  

       
    </body>
</html>

当我们写 PHP 类时,类中包含了成员变量和成员方法,用于操作数据和完成任务。这段代码定义了一个名为 Car 的类,表示一段关于汽车的内容。具体来说,这个类包括一个构造函数和一个方法。

下面是这段代码的详细解释:

class Car
{
    var $color;

在这里,我们定义了一个名为 Car 的类,并且声明了一个成员变量 $color。这个成员变量将用于代表汽车的颜色属性。

function __construct($color="green") {
      $this->color = $color;
}

这里是类的构造函数 __construct(),它被用于创建类的新实例。这个构造函数有一个默认参数:$color="green",意思是如果没有为构造函数提供颜色参数,则默认设置颜色为绿色。在构造函数中,我们将传入的颜色值赋给了类的成员变量 $color

function what_color() {
      return $this->color;
}

这个代码定义了一个公共方法 what_color(),用于返回汽车对象的颜色属性值。在这个方法中,我们返回了该类的成员变量 $color

function print_vars($obj) {
   foreach (get_object_vars($obj) as $prop => $val) {
     echo "\t$prop = $val\n";
   }
}

这个代码定义了一个函数 print_vars(),它接受一个对象参数 $obj,用于显示给定对象的所有属性和相应的值。它通过遍历使用 get_object_vars() 函数获取的对象属性数组来实现此功能,并打印输出每个属性和对应的值。

$herbie = new Car("white");

这行代码实例化了一个 $herbie 对象,它是类 Car 的一个实例。传入给构造函数的参数为 “white”,因此该对象的颜色为白色。

echo "\therbie: Properties\n";
print_vars($herbie);

这两行代码用于显示 $herbie 对象的属性。我们先输出一个标题字符串 “herbie: Properties”,然后调用 print_vars() 函数打印出 $herbie 对象的所有属性及相应的值。

综合起来,这段代码演示了如何使用 PHP 创建类、定义成员变量和成员方法、使用构造函数、访问类成员、实例化类对象等。最终,通过这些步骤创建了一个 Car 类,用于表示汽车对象,并且成功地实例化了一个带有指定颜色的 $herbie 对象。

7. PHPnull值
  • NULL值表示变量没有值,null是数据类型为null的值
  • null’值指明一个变量是否为空值,同样可用于数据空值和NULL值的区别
  • 可以通过设置变量值为null来清空变量数据
  • NULL是空类型,对大小写不明干

例如:

null类型只有一个取值项,当被赋值为null或者尚未赋值,或者被unset(),这三种情况返回值均为null

<?php error_reporting(0); //禁止显示PHP警告提示 `$var;` var_dump($var); var_dump($var1); ``$var1=null;` `$var2=null;` var_dump( $var2); $var3 = "节日快乐!"; `unset($var3);` var_dump($var3); ?>
<?php

$x="hello world!";
$x=null;
var_dump($x);
?>
结果显示为null,它把hello world的值给清空了。如果把$x=null注释掉,则结果为string(12) "hello world!"

8. PHP资源类型
  • PHP资源resource是一种特殊变量,保存了到外部资源的一个引用
  • 常见资源数据类型有打开文件,数据库连接,画形画布区域等
  • 由于资源类型变量保存有为打开文件,数据库连接,图形画布区域等的特殊句柄,因此将其他类型的值转换为资源没有意义
  • 使用get_resource_type()函数可以返回资源(resource)类型

get_resource_type(resource $handle): string

此函数返回一个字符串,用于表示传达给它的resource的类型,如果参数不是合法的resource,将产生错误

句柄

  • 是计算机术语,通常用于在操作系统和编程语言中,在操作系统中,句柄是操作系统为了表示资源(如文件,窗口,进程等)的引用而创建的数字表示符,在编程语言中,句柄是一种数据类型用于指向一个对象或变量所在的内存地址;
  • 在php中,句柄通常用于表示文件,数据库连接,图像等资源,例如,在读取文件时,使用fopen函数就可以打开一个文件,并返回一个文件句柄,通过这个句柄,可以使用fgets函数来读取文件内容,然后使用fcolse函数关闭文件句柄,释放文件资源

如下实例:

<?php
$c=mysql_connect();  //创建一个mysql数据库连接并将其赋值给变量C
echo get_resource_type($c)."\n"; //然后使用get_resource_type()函数获取该连接的类型,由于c是一个数据库连接,因此输出结果为mysql link
$fp=fopen("foo","w"); //通过fopen()函数创建了一个名为foo的文件,并将其文件指针赋值给变量$fp,然后使用get_resource_type()函数获取该文件执政的类型,由于fp是一个文件指针因此输出结果为file
echo get_resource_type($fp)."\n";
$doc=new_xmldoc("1,0");   //创建了一个名为doc的XML文档对象,并使用doc->doc访问其底层资源,然后使用get_resource_type函数获取该资源的类型,由于$doc->doc是xml文档资源,因此输出结果为xml
echo get_resource_type($doc)."\n";

?>

实例

<?php
$file_handle=fopen("/data/webroot/resource/php/f.txt","r"); //打开文件$file_handle使用fopen函数,并且指定打开方式为只读;
if ($file_handle)  //使用if语句判断是否打开了文件句柄,如果打开则进入循环,如果打开失败则跳过循环
{
while (!feof($file_handle)){  //通过feof判断文件指针是否到达末尾,如果未达到则执行循环内的代码
		$line=fgets($file_handle);//使用fgets函数读取文件句柄file_handdle中的一行内容,并将其复制给变量$line
		echo $line;将读取出来的内容使用echo输出到页面上
		echo<"br">;用于在页面上添加换行符,使得每一行内容能够单独显示在一行中
	}
}
fclose($file_handle);关闭文件连接
?>

feof函数用于判断文件指针是否到达了文件末尾,语法格式如下

bool feof (resource $handle)

其中$handle 参数是一个打开的文件指针资源,当文件指针指向末尾时,该函数返回true,否则返回false,常与while循环结合使用,可以在循环中逐行读取文件内容,知道读到文件末尾位置;实例代码如下:

$file = fopen(“/data/example.txt”,“r”);

while(!feof($file)){

echo fgets($file).“
”;

}

fcoles($file);

通过 fopen 函数打开 example.txt 文件,并将其赋值给变量 $file,之后在 while 循环中使用 feof 函数判断是否到达文件末尾,如果没有,则使用 fgets 函数读取文件的一行内容并输出,最后使用 fclose 函数关闭文件句柄。

9. PHP类型比较
  • 松散比较:使用两个等号==比较,只比较值,不比较类型
  • 严格比较:用三个等号比较===,除了比较值,还比较类型

例如:

<?php
if(42=="42")
{
    echo '1:值相等';
}
 else 
{
        echo '2:值不相等';
}

echo PHP_EOL;
 if(42==="42")
 {
    echo  '1:值相等';
 }
 else  
 {
     echo '2:值不相等';
 }
?>

输出结果为:
1:值相等
2:值不相等

PHP中比较0,false,null

echo '0 == false';
var_dump(0 == false);
echo '0===false';
var_dump(0===false);
echo PHP_EOL;
echo '0 == null';
var_dump(0 == null);
echo '0 === null';
var_dump(0===null);
echo PHP_EOL;
echo 'false == null';
var_dump(false == null);
echo 'false===null';
var_dump(false === null);

显示的结果
0 == false bool(true)
0===false bool(false)

0 == null bool(true)
0 === null bool(false)

false == null bool(true)
false===null bool(false)
(四):PHP常量

常量值被定义后,在脚本的其他任何地方都不能被改变

  1. 常量是一个简单值的表示符,该值在脚本中不能改变
  2. 一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。(常量名不需要加$修饰符)

注意:常量在整个脚本中可以使用

设置常量,,使用define()函数,函数语法如下:

bool define (string $name , mixed $value [,bool $case_insensitive = false])

该函数有三个参数:

  • name 必选参数,常量名称,即标识符
  • value 必选参数,常量的值
  • case_insenstive :可选参数,如果设置为true,该常量大小写敏感,默认是大小写敏感
  • 从PHP7.3.0开始,定义不区分大小写的常量已被弃用,从8.0开始,只有false是可接收的,传递true将产生一个警告
<?php
// 不区分大小写的常量名
define("GREETING", "欢迎访问 Runoob.com", true);
echo greeting;  // 输出 "欢迎访问 Runoob.com"
?>
输出结果告警

<?php
// 不区分大小写的常量名
define("GREETING", "欢迎访问 Runoob.com", true);
echo GREETING;  // 输出 "欢迎访问 Runoob.com"
?>
输出结果为:
欢迎访问 Runoob.com

实例:计算周长

<?php
$PI=PI;  先定义了变量为PI
define($PI,3.14); 在定义PI为常量值为3.14
$r=3;
echo "面积为:".(PI*$r*$r)."<br />";
echo "周长为:".(2*PI*$r)."<br />";
?>
--------------------------------------输出结果都为面积:28.26;周长:18.84
<?php
define("PI",3.14);
$r=3;
echo "面积为:".(PI*$r*$r)."<br />";
echo "周长为:".(2*PI*$r)."<br />";
?>

常量是全局的,以下实例演示了在函数内使用该常量,即便常量定义在函数外也可以正常使用常量

<?php
define("text","heelo,world");
function test()
{
    echo text;
}
test();
?>
输出结果为hello,world

1. 系统常量

系统常量是PHP已经定义好的常量,我们就可以直接拿来使用,常见的系统常量有:

  1. __FILE__ ;PHP程序文件名,它可以帮助我们获取当前文件在服务器的物理位置
    
  2. LINE_;php程序文件行数;他告诉我们当前代码在第几行

  3. PHP_VERSION; 当前解析器的版本号,它可以告诉我们当前PHP解析器的版本号,我们可以提前知道我们的PHP代码是否可以被该PHP解析器解析

  4. PHP_OS;执行当前PHP版本的操作系统名称,它可以告诉我们服务器所用的操作系统名称,我们可以根据该操作系统优化我们的代码

  5. PHP_SELF;表示正在执行脚本的文件名
    
  6. ___DIR____表示文件所在的目录

  7. DIRECTORY_SEPARATOR:表示当前操作系统下的目录分隔符。

  8. PATH_SEPARATOR:表示当前操作系统下的路径分隔符。

这些常量除了 __LINE____FILE__ 外,其他常量均为只读常量,不能被重新定义。通常使用全局常量数组$GLOBALS来访问,也可以不加

例如

<?php
echo __FILE__;
echo "<br />";
echo __LINE__;
echo "<br />";
echo PHP_OS;
echo "<br />";
echo  PHP_VERSION;
echo "<br />";
?>
输出结果
index.php
4
Linux
5.3.29
2. 常量如何取值

定义了常量,那么就要使用常量,如何获取常量值呢?

有两种方法:1. 直接使用常量名直接获取值;例如以下计算圆周率面积

<?php
define("PI",3.14);
$r=1;
$area=PI*$r*$r;
?>
  1. 直接使用constant()函数,他和直接使用常量名输出的效果是一样的,但函数可以动态的输出不同的常量,在使用上面更加要灵活

语法如下:mixed constant(string constant_name)

第一个参数constant_name为要获取的常量的值,也可以为存储常量名的变量,如果成功则返回常量的值,如果失败则提示错误信息常量没有被定义。注:mixed表示函数返回值的类型为多种不同的类型 string表示参数类型为字符串类型

实例:

<?php
$p=""; 
// 先将变量$p初始化为空字符串
define("PI1",3.14);  //定义了两个常量PI1和PI2,并赋值
define("PI2",3.142);
$height="中"; 根据变量$height设置精度
if($height=="中"){
$p="PI1";    //如果height为中,则变量P为字符串$PI1
}
else if($height=="低")
{
$p="PI2";  反之则为PI2
}
$r=1;
$area=constant($p)*$r*$r; 调用constant($p)来获取$p相对应的常量值
echo $area;
?>
3. 如何判断常量是否被定义

如果常量被定义过后,重复定义解析器会发出Constant xxx already defined 的警告,提示我们该常量已经被定义过了,那么在代码量很大的情况下我们如何判定一个常量是否被定义呢;

defined()函数可以帮助我们

boo defined(string constants_name);

constant_name 代表要获取的常量的名称,若存在则返回布尔值true,不存在则返回false

注:bool表示函数返回值为布尔类型

例如:

<?
define("PI1",3.14);
$p="PI1";  //变量 $p 的值设为字符串 "PI1",即存储了常量的名称。
$is1=defined($p);//调用 defined() 函数来检查两个条件:第一个是 $p 所存储的常量是否已经被定义
$is2=defined(""$PI2");  //,第二个是常量 "PI2" 是否已定义。
var_dump($is1);
var_dump($is2);

?>
显示结果为:
bool(true)   已经定义
bool(false)   未定义
4. PHP字符串变量

字符串变量包含有字符的值

在创建字符串之后,我们就可以对它进行操作了,可以直接在函数中使用字符串,或者把它存储在变量中

实例

<?php
$txt= "hello,world"; 创建名为txt的字符串变量,并赋值为hello world
echo $txt;
?>

注释:给文本赋值给变量时,要给文本值加上单引号或者双引号

5. 并置运算符(连接字符串)

在PHP中,只有一个字符串运算符

并置运算符(.)用于把两个字符串值连接起来;返回将右参数附加到做参数后面所得的字符串

连接赋值运算符(.=);将右参数附加到左边的参数后

实例:

<?php
$txt1="nihao,";
$txt2="shijie";
echo $txt1."".$txt2; 
?>
输出nihao,shijie

提示:在上面代码中,之所以使用了两次并置运算符,是因为需要在两个字符串之间插入一个空格

<?php 
    $a = "张先生";
	$tip=$a.",欢迎您在慕课网学习PHP";
	
    $b = "东边日出西边雨";	
    $b.=",道是无晴却有晴";
    
	$c = "东边日出西边雨";	
    $c=$c.",道是无晴却有晴";
    
	echo  $tip."<br />";
	echo  $b."<br />";
	echo  $c."<br />";
?>
运行结果
张先生,欢迎您在慕课网学习PHP
东边日出西边雨,道是无晴却有晴
东边日出西边雨,道是无晴却有晴
6. srtlen()函数

strlen()函数返回字符串的长度(字节数)。

<?php
echo strlen("hello");
?>
<?php
$txt1="nihao,";
$txt2="shijie";
echo strlen($txt1."".$txt2);
?>
输出结果为12

提示:strlen()常常用在循环和其他函数中,因为那是确定字符串何时结束时很重要的,例如,在循环中,我们需要在字符串中的最后一个字符之后结束循环

7. strpos()函数

strpos()函数用于在字符串内查找一个字符串或一段指定的文本

如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置,如果未找到匹配,则返回False

实例:

<?PHP
echo PHP_EOL;;
$dxt="ni,rou,anhao";
echo strpos($dxt,",");
?>
输出结果为2
字符串中第一个字符的位置是 0,而不是 1
(五):PHP运算符

PHP中不同运算符的应用

  1. 算术运算符:用于执行基本的数学运算,如加法,减法,乘法和除法,常见的算术运算符有:+,-,*,/,和%取模
  2. 逻辑运算符:判断两个值是否相等或不相等;常见的有(==,!=,>,<, >=, <= )
  3. 赋值运算符:将值赋给变量;常见的有(=赋值,+= 加并赋值,-= 减并赋值和 *= 乘并赋值)
  4. 字符串运算符:用于连接和操作字符;常见的字符串运算符是.(点运算符),用于连接多个字符串
  5. 数组运算符;用于操作数组,包括合并数组,比较数组等,常见的有 +(联合),(相等),=(全等)和!=不等
  6. 条件运算符:也称为三元运算符,用于执行基于条件的操作,语法为:条件?如果条件为真执行的代码,如果条件为假执行的代码
1. 算术运算符
运算符名称描述实例结果
x+yx和y的和2+24
x-yx和y的差5-23
x*yx和y的积5*210
x/yx和y的商5/23
x%y模(除法的余数)x除以y的余数5%2
10%8
10%2
1
2
0
-x设置负数取x的相反符号<?php
x = 2 ; < b r / > e c h o − x=2;<br />echo - x=2;<br/>echox;

-2
~x取反x取反,按二进制位进行取反运算运算规则:
~1=-2;
~0=-1;
<?php
x = 2 ; < b r / > e c h o   x=2;<br />echo ~ x=2;<br/>echo x;
-3
a.b并置连接两个字符串“hihi”.“ha”hiha

php7版本新增整除运算符intdiv(),该函数返回值为第一个参数除以第二个参数的值并取整(向下取证,不取余数)

实例:

<?php
$x=10;
$y=6;
echo ($x + $y); //16
echo PHP_EOL;   //使用echo '<br>' 也是可以的
echo ($x -$y); //4
echo PHP_EOL;
echo ($x * $y); //60
echo PHP_EOL;
echo ($x / $y); //1.66666666666667
echo PHP_EOL;
echo ($x % $y); //4
echo PHP_EOL;
echo -$x; //-10
echo PHP_EOL;
var_dump(intdiv(10,6)); 
echo PHP_EOL;
var_dump(intdiv(10,3));
?>
输出结果为 
16
4
60
1.6666666666667
4
-10
int(1)
int(3)

<?php 
$english = 110; //英语成绩
$math= 118; //数学成绩
$biological = 80; //生物成绩
$physical = 90; //物理成绩
$sum=$english+$math+$biological+$physical;
$avg=$sum/4;
$x=$math-$english;
$x2=$english*$english;


echo "总分:".$sum."<br />";
echo "平均分:".$avg."<br />";
echo "数学比英语高的分数:".$x."<br />";
echo "英语成绩的平方:".$x2."<br />";

运行结果为
总分:398
平均分:99.5
数学比英语高的分数:8
英语成绩的平方:12100

取模算术符

实例:

获取座位号
<?php
$maxLine=4; //每排人数
$no=19; //学生编号
$line=($no/$maxLine)//计算在第几排
$row=$no%$maxLine?$no%maxLine:$maxLine;
echo "编号<br>".$no."<b>的座位在第<b>".$line."</b>排第<b>".$row."</b>个位置"
 
    运行结果:
    编号19的座位在第5排第3个位置
2. 赋值运算符

在PHP中,基本赋值的运算符=,它意味着左操作被设置为右侧表达式的值,也就是说$x=5的值是5;还有一种赋值运算符为&

&:引用赋值,意味着两个变量都指向同一个数据,他将是两个变量共享一块内存。如果这个内存存储的数据变了,那么两个变量的值都会发生变化

<?php 
    $a = "我在慕课网学习PHP!";
    $b=$a;
	$a = "我天天在慕课网学习PHP!";
	$c=&$a; //赋值
	echo $b."<br />";
	echo $c."<br />";
?>

运算符等同于描述
x=yx=y左操作数被设置为右侧表达式的值
x+=yx=x+y
x-=yx=x-y
x*=yx=x*y
x/=yx=x/y
x%=yx=x%y模(除法的余数)
a.=ba=a.b连接两个字符串

实例:

<?php
$x=10;
echo $x;
echo PHP_EOL;
$y=20;
$y+=100;
echo $y;
echo PHP_EOL;
$z=50;
$z-=25;
echo $z;
echo PHP_EOL;
$i=5;
$i*=6;
echo $i;
echo PHP_EOL;
$j=10;
$j /=2;
echo $j;
echo PHP_EOL;
$k=15;
$k %=4;
echo $k;
?>
    显示结果为:
    10
120
25
30
5
3

对比

以下演示不同字符串运算得到相同的结果

<?php
$a="hello";
$b=$a."world!";
echo $b;
echo PHP_EOL;
$x="hello";
$x.="world";
echo $x;
?>
结果显示
helloworld!
helloworld

3. 递增/递减运算符
运算符名称描述
++x预递增x加1,然后返回x
x++后递增返回x,然后x加1
–x预递减x减1,然后返回x
x–后递减返回x,然后x减1

实例

<?php
$x=10;
echo ++$x;
echo PHP_EOL;
$y=10;
echo $y++;
echo PHP_EOL;
$z=10;
echo --$z;
echo PHP_EOL;
$i=10;
echo $i--;
显示结果:
11
10
9
10
4. 比较运算符
运算符名称描述实例
x==y等于如果x等于y,则返回true5==8返回false
x===y绝对等于如果x等于y,且他们类型相同,则返回true5==="5"返回false
x !=y不等于如果x不等于y,则返回true5!=8 返回true
x <> y不等于如果x不等于y,则返回true5<>8 返回true
x !==y不绝对等于如果x不等于y,或他们呢类型不相同,则返回true5!===“8”
x > y大于如果x大于y,则返回true5>8返回false
x<y小于如果x小于y,则返回true5<8 返回true
x>=y大于等于如果x大于或等于y,则返回true5>=8 返回false
x<=y小于等于如果x小于或者等于y,则返回true5<=8返回true
$x=100;
$y="100";
var_dump($x==$y);
var_dump($x===$y);
var_dump($x != $y);
var_dump($x!==$y);
$a=10;
$b=20;
var_dump($a>$b);
var_dump($a<$b);
结果显示:
bool(true)
bool(false)
bool(false)
bool(true)
bool(false)
bool(true)

bool是一种逻辑类型(logical type),表示真和假两个取值的其中之一,在c++,python,java等编程语言中,bool通常被定义为布尔型(boolean type)并占用一个字节的内存空间,他的值只有ture和false两种取值,在编写程序是,bool类型经常用于控制流语句中

5. 逻辑运算符
运算符名称描述实例
x and y如果x 和y都为true,则返回truex=6
y=3
(x<10 and y>1)返回 true
x or y如果x和y至少一个为true,则返回truex=6
Y=3
(X6 xor y5) 返回true
x xor y异或如果x和y有且仅有一个为true,则返回 truex=6
Y=3
(X6 xor y5) 返回false
x && y如果x和y都为true,则返回truex=6
Y=3
(X<10 && y>1) 返回true
x || y如果x和y至少有一个为true,则返回truex=6
Y=3
(x5 || y5) 返回false
! x如果x不为true,则返回truex=6
Y=3
!(x==y) 返回true

实例

<?php
$x = 6;
$y = 3;
echo ($x<10 and $y>1);
echo '<br>';
echo ($x==6 or $y==5);
echo '<br>';
echo ($x==6 && $y>3);
?>
结果为
1
1
0

实例(使用了逻辑运算符和三元运算符)

我们假设有ABCD进行了投票,然后我们用逻辑运算符,来判定他们的投票是否能通过某些协议
<? php
$a=TURE;
$b=TURE;
$c=flase;
$d=false;

echo ($a and $b)?"通过":"不通过"//只有 A 和 B 都赞同时,才能通过提案。
echo$a or $b?"通过""不通过"; //只要 A 或 C 中有一个人赞同即可通过提案。
echo ($a xor $c xor $d)?"通过":"不通过"//表示只有 A 或 C 或 D 中恰好有一个人赞同,才能通过提案。
echo !$c?"通过":"不通过"//表示只要 C 不反对就能通过提案
echo $a && $d ?"通过":"不通过";//表示只有同时满足 A 赞同且 D 反对时,才不能通过提案
echo $c || $b || $d?"通过":"不通过"; //表示只要 B 或 C 或 D 中至少有一个人赞同,就能通过提案。

?>
三元运算符

(“?;”)三元运算符也是一个比较运算符,对于表达式(expr1)?(expr2):(expr3),如果expr1的值为true,则表达式的值为expr2,否则为expr3

<?php 
    $a = 78;//成绩
	$b=$a>=60?"及格":"不及格";
	echo $b;
?>
输出结果为及格
其expr1的作用是判断$a值是否大于60,若大于60,则$b变量的值为expr2的值“及格”,若小于60,则$b变量的值为expr3的值“不及格”
7. 错误控制运算符

“@” 符号表示忽略错误提示。对于一些可能会在运行过程中出错的表达式时,我们不希望出错的时候给客户显示错误信息,这样对用户不友好。于是,可以将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉;如果激活了track_error(这个玩意在php.ini中设置)特性,表达式所产生的任何错误信息都被存放在变量$php_errormsg中,此变量在每次出错时都会被覆盖,所以如果想用它的话必须尽早检查。

:错误控制前缀“@”不会屏蔽解析错误的信息,不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等。

<?php  
 $conn=@mysql_connect("localhost","username","password");
 echo "出错了,错误原因是:".$php_errormsg;
?>
(六): PHP结构语句
1. 顺序结构

顺序结构就像一条直线,按着顺序一直往下执行下去,我们编写的代码默认都是按照顺序结构执行的

实例:计算订单总价格

<?php
    $shoesPrice = 49; //鞋子单价
    $shoesNum = 1; //鞋子数量
	$shoesMoney=$shoesPrice*$shoesNum;

	$shirtPrice = 99; //衬衣单价
	$shirtNum = 2; //衬衣数量
	$shirtMoney=$shirtPrice*$shirtNum;

	$orderMoney=$shoesMoney+$shirtMoney; //总价

	echo $orderMoney ;
?>
 
2. 条件结构 if…else

条件语句用于根据不同条件执行不同动作

条件语句:

  • if语句-在条件成立时执行代码
  • if…else语句—在条件成立时执行一块代码,条件不成立时执行另一块代码
  • if…elseif…else:若干条件之一成立时执行一个代码块
  • switch语句:在若干条件之一成立时执行一个代码块
1. If

if语句用于仅当指定条件成立时执行代码

语法:

if(条件)

{

条件成立时要执行的代码;

}

实例:如果当前时间小于20,下面的实例将输出have a good day

<?php
$t=date("H");
if ($t<"20")
{
echo "have a good day";
}
2.if … else

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

语法:

if(条件)

{

条件成立时执行的代码

}

else
{

条件不成立时执行的代码

}

实例:如果当前时间小于20,下面的实例将输出Have a good day,否则输出have a good night

<?oho
$time=data("H");
if($time<"20")
{
echo "have a good day";
}
else 
{
echo "have a good night";
}

实例:计算生日优惠;一些酒店为了促销,吸引顾客,可以给当天生日的人八折优惠,这时可以使用条件结构。

<?php
    date_default_timezone_set('Asia/ShangHai');
    $today = date('m-d',time());//获取当天日期
	$birthday = "02-14";//生日
	$money = 238;//消费金额
	$discount = 0.8;//八折优惠
	if($today == $birthday){
	    $money=$money*$discount;
	}else{
	    $money=$money*1;
	}
	echo $money;
?>
输出结果为238
3. if…else if…

语法:

if(条件)

{

if条件成立时执行的代码

}

else if(条件)

{

elseif条件成立时执行的代码

}

实例:通过条件一判断,若返回值为布尔值为TRUE,则执行任务A,若返回值为FALSE,则判断条件二,若返回值为布尔值TRUE,则执行任务B,否则既不执行任务A,也不执行任务B。服务器会继续往下执行其他任务。

算三月份的奖金
<?php
    $totalMoney = 0;//总工资
    $basicMoney =  2000;//基本工资
	$sex = "男";
    if($sex=="男"){
		$totalMoney = $basicMoney  + 0;// 男的没奖金
    }
    else if($sex=="女"){ 
    
		$totalMoney = $basicMoney  + 300;// 女的有奖金300元
    }
	echo $totalMoney;
?>
4. if…else if…else

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

if (条件)
{
if 条件成立时执行的代码;
}
else if (条件)
{
elseif 条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
}

通过条件一判断,若返回值为布尔值TRUE,则执行任务A,若返回值为FALSE,则判断条件二,若返回值为布尔值TRUE,则执行任务B,否则既不执行任务A,也不执行任务B,执行任务C。

实例:判断今天是否有课

<?php
date_default_timezone_set('asia/shanghai');
$week = date("w");//获取当天星期几
$info = "";//提示信息
if($week== 1){
    $info = "上午有课";
}
else if($week== 3){
	$info = "下午有课";	 
}else{
	$info = "今天没课";
}
echo $info; //输出提示信息
?>

实例:如果当前时间小于 10,下面的实例将输出 “Have a good morning!”,如果当前时间不小于 10 且小于 20,则输出 “Have a good day!”,否则输出 “Have a good night!”:

<?php
$t=date("H");
if($t<10)
{
echo "have a good morning";
}
else if($t>"10" and $t<"20")
{
echo "have a good day";
}
else
{
echo "hava a good night";
}
?>
输出结果为have a good day
5. switch…case

有选择地执行若干代码块之一

语法:

break的作用是阻止代码进入下一个case 中继续执行。

<?php switch(n) { case 条件值一 如果n=条件值一,此处代码将执行; break; case 条件值二: 如果n=条件之二,此处代码将执行 break; default: 如果n不等于条件值一也不等于条件值二,则执行此处代码 }

工作原理:首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行。

<?php
$favcolor="red";
switch($favcolor)
{
case "red":
  echo "你最喜欢的颜色是红色";
  break;
case "blue":
 echo "你最喜欢的颜色是蓝色";
 break;
case "green":
echo "你最喜欢的颜色是绿色"
break;
default:
echo "你喜欢的颜色不是红,蓝。或者绿色";
}

实例:设计一个抽奖程序

<?php
$num = rand(1,50);//获取1至50的随机数
$info = "";//提示信息
switch($num)
 {   
     case 1:
		$info = "恭喜你!中了一等奖!";
		break;
	case 2:
		$info = "恭喜你!中了二等奖!";
		break;
 	 case 3:
		$info = "恭喜你!中了三等奖!";
		break;
	default:
		$info = "很遗憾!你没有中奖!";
}
 echo $info; //输出是否中奖
?>

注释:rand()函数用于生成介于最小值和最大值之间的随机整数

用法:rand(min,max)

其中min是范围最小值,max是范围最大值

例题:生成1—10之间的随机数

$random_number=rand(1,10)
echo $random_nuber; /每次执行该代码时,都会输出介于 1 和 10 之间的随机整数。
3.while循环
  • whilie 只要指定的条件成立,则循环执行代码块
  • do …while 首先执行代码块一次,然后在指定条件成立时重复这个循环
  • for 循环执行代码块指定的次数
  • foreach 根据数组中每个元素来循环代码块
1. while循环

将重复执行代码块,直到指定的条件不成立

语句

while(条件)

{

要执行的代码

}

首先判断某个条件是否符合(条件返回值是否为true),若符合则执行任务,执行完毕在判断条件是否满足要求,符合在重复,不符合则结束

实例:循环

<?php
$i=1 //先定义变量1=1
while($i<10){ //设定条件当i小于10时代码将运行循环
echo "the number is".$i."<br>";
$i++;
}
?>

实例:使用while喂小宠物

<?php
$sum=12;
echo "我好饿啊!"
while($sum<100){
$sum=rand(1,20);
$sum+=$sum;
echo "再来点";
echo "<br>";
}
echo "我吃饱了"
?>
2. while

先执行一次代码,然后检查条件,只要条件成立就会重复进行循环

语法

do

{

要执行的代码;

}

while(条件);

实例:循环加

<?php
$i=1;
do{
$i++;
echo "the number".$i."<br>";
}
while($i<10);
?>
3.while与do while的区别

while循环是先检查条件,然后决定是否进入循环体,如果条件为真,则继续执行循环体,否则跳过循环不执行

i = 1 ; w h i l e ( i = 1; while ( i=1;while(i <= 10) {
echo $i;
$i++;
}

do while 是先执行一次循环体,然后在检查条件并决定是否继续进行下一次循环体,这意味着无论条件是否为真,至少会执行一次循环体,

$i = 1;
do {
echo $i;
KaTeX parse error: Expected 'EOF', got '}' at position 6: i++; }̲ while (i <= 10);

while 循环和 do while 循环在执行顺序和逻辑上有所不同,需要根据具体需求选择合适的循环语句。通常情况下,如果您想要先判断条件再执行循环体,则使用 while 循环;如果您想要保证循环体至少被执行一次,则使用 do while 循环。

4. for循环和foreach循环

循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块

1. for循环
  1. 语法

for循环用于预先知道脚本需要运行的次数的情况

for(初始值;条件;增量)

{

要执行的代码

}

for 语句中,“初始化”在循环开始前无条件求值一次,“循环条件”在每次循环开始前求值。如果值为 TRUE,则继续循环,执行循环体语句(执行任务)。如果值为 FALSE,则终止循环。“递增项”在每次循环之后被求值(执行)。其常用于循环执行代码块指定的次数。

参数:

  • 初始值:主要是初始化一个变量值,用于设置一个计数器(但可以是任何在循环的开始被执行一次的代码)
  • 条件:循环执行的限制条件。如果为true,则循环继续,如果为false,则循环结束
  • 增量:主要用于递增计数器(但可以是任何在循环的结束被执行的代码)

注释:上面的初始值和增量参数可为空,或者有多个表达式(用逗号分隔)

实例:

下面定义一个初始值为 i=1 的循环。只要变量 i 小于或者等于 5,循环将继续运行。循环每运行一次,变量 i 就会递增 1:

for( i = 1 ; i=1; i=1;i<=5;i++)

{

echo “数字为”.$i. PHP_EOL;

}

输出:

数字为 1
数字为 2
数字为 3
数字为 4
数字为 5

实例:

我们要计算从1加到100的和。首先初始化一个递增变量为1,及初始化累加和为0,接着设置循环条件是变量是否小于等于100,小于100执行任务累加求和,递增项为变量递增1。

##for语句

for( i = 1 , i=1, i=1,sum=0;$i<=100;i++)

{

s u m = sum= sum=i+$sum;

}

echo “总数为”.$sum."
;

while 语句

$i=1;

$sum=0;

while($i<=100)

{

s u m = sum= sum=sum+$i;

i++

}

echo “while语句的运行结果:”.$sum.“
” ;
?>

2. foreach循环

foreach用于遍历数组

一般有两种语法:

  1. 只取值,不取下标

foreach(数组 as 值)

{

要执行的任务

}

  1. 取值,也取下标

foreach(数值 as 下标=>值)

{

执行的任务

}

第一种:只取值,不取下标

下面的实例演示了一个输出给定数组的值的循环:

实例

<?php $x=array("Google","Runoob","Taobao"); foreach ($x as $value) { echo $value . PHP_EOL; } ?>

输出:

Google
Runoob
Taobao

题目实例:有一组学员以学号为下表,姓名为值的数组,这时候需要遍历数组的姓名

$student=array(

‘2010’=>‘令狐冲’,
‘2011’=>‘林平之’,
‘2012’=>‘曲洋’,
‘2013’=>‘任盈盈’,
‘2014’=>‘向问天’,
‘2015’=>‘任我行’,
‘2016’=>‘冲虚’,
‘2017’=>‘方正’,
‘2018’=>‘岳不群’,
‘2019’=>‘宁中则’,

);

foreach($student as $v) //使用循环结构遍历数组,获取学生和姓名

{

echo $v;

echo “<br./>”;

}

题目实例:同时列出学号和姓名

$student=array(

‘2010’=>‘令狐冲’,
‘2011’=>‘林平之’,
‘2012’=>‘曲洋’,
‘2013’=>‘任盈盈’,
‘2014’=>‘向问天’,
‘2015’=>‘任我行’,
‘2016’=>‘冲虚’,
‘2017’=>‘方正’,
‘2018’=>‘岳不群’,
‘2019’=>‘宁中则’,

);

foreach($students as k e y = > key=> key=>v)

{

echo k e y . " : " . key.":". key.":".v;

echo “<br./>”;

}

实例:下面的实例演示了一个输出给定数组键与值的循环:

> <?php $x=array(1=>"Google", 2=>"Runoob", 3=>"Taobao");
>
> foreach ($x as $key => $value) 
>
> {    echo "key  为 " . $key . ",对应的 value 为 ". $value . PHP_EOL; } ?>
>
> 输出:
>
> key  为 1,对应的 value 为 Google
> key  为 2,对应的 value 为 Runoob
> key  为 3,对应的 value 为 Taobao
3. 结构嵌套之条件嵌套

条件结构嵌套就像回家的路上会遇到多个十字路口

题目:假设在发3月工资的时候,不仅判定性别,还要判定男性是否有房,没有房,可以发放住房补贴,对于女性,判定是否怀孕,怀孕还有怀孕补贴。

> <?php
>
> $totalMoney = 0;//总工资
> 	$basicMoney =  300;//基本工资
> 	$sex = "男";
> 	$noHouse = TRUE; //是否有房
> 	$houseMoney =  150;//住房补贴
> 	$isPregnancy = TRUE; //是否怀孕
> 	$pregnancyMoney =  100;//怀孕补贴
>
> if($sex=="男")
>
> {
>
> $totalMoney=$basicMoney+0;
>
> if($noHouse)
>
> ​		{
>
> $totalMoney=$totalMoney+$houseMoney;
>
> ​		 }
>
> }
>
> else if(sex=="女")
>
> {
>
> $totalMoney=$basicMoney+300;
>
> if($isPregnacy)
>
> ​	{
>
> $totalMoney=$totalMoney+$isPregnancy;
>
> ​	}
>
> }
>
> echo $totalMoney;
4. PHP结构嵌套值循环嵌套

循环结构嵌套,就是类似于跑多个足球场,例如假设有两个足球场,一个大足球场,一个小足球场,在大足球场跑一圈后,再到小足球场跑几圈,跑完几圈后,再到大足球场中继续跑。在遍历二维数组中很常用。

题目:通过二维数组,保存了学号、姓名和成绩,可以通过两个循环嵌套,遍历出学号和姓名

> <?php
> $students = array(
> '2010'=>array('令狐冲',"59"),
> '2011'=>array('林平之',"44"),
> '2012'=>array('曲洋',"89"),
> '2013'=>array('任盈盈',"92"),
> '2014'=>array('向问天',"93"),
> '2015'=>array('任我行',"87"),
> '2016'=>array('冲虚',"58"),
> '2017'=>array('方正',"74"),
> '2018'=>array('岳不群',"91"),
> '2019'=>array('宁中则',"90"),
> );//10个学生的学号、姓名、分数,用数组存储
>
> foreach($students as $key=>$val)
>
> { //使用循环结构遍历数组,获取学号 
>   echo $key; //输出学号
> 	 echo ":";
> 	 //循环输出姓名和分数
> 	foreach($val as $v)
>
> ​	{
> ​		echo $v; 
> ​	 }
> ​	 echo "<br />";
>
> }
>
> ?>
>
> 
>
> 输出结果
>
> 2010:令狐冲59
> 2011:林平之44
> 2012:曲洋89
> 2013:任盈盈92
> 2014:向问天93
> 2015:任我行87
> 2016:冲虚58
> 2017:方正74
> 2018:岳不群91
> 2019:宁中则90
5. PHP结构嵌套值循环结构与条件结构嵌套

有时候在执行任务时,对于一些特殊的任务还需要进行额外处理,这个时候就会将循环结构与条件结构嵌套使用。

题目:有个学生数组存储了学号和姓名,我们需要查找学号为“2014”的学生姓名,这时候我们就需要遍历该数组,并判定学号是否为“2014”。

<?php
> $students = array(
> '2010'=>'令狐冲',
> '2011'=>'林平之',
> '2012'=>'曲洋',
> '2013'=>'任盈盈',
> '2014'=>'向问天',
> '2015'=>'任我行',
> '2016'=>'冲虚',
> '2017'=>'方正',
> '2018'=>'岳不群',
> '2019'=>'宁中则',
> );//10个学生的学号和姓名,用数组存储
> $query = '2014';
> //使用循环结构遍历数组,获取学号和姓名
>
> foreach ($students as $key=>$v)
>
> { 
>  //使用条件结构,判断是否为该学号
> 	if($key==$query)
>
> { 
> 	echo $v;//输出(打印)姓名
> 	break;//结束循环(跳出循环)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值