php基础知识(二)

简介: Because PHP is the best language ever, ever. It's fast, very powerful, and free.因为PHP是有史以来最好的语言,没有之一。它快速,非常强大,而且免费。 ———Project Beehive Forum

PHP语法(二)

顺序语句

所谓顺序结构就是自上而下一条一条执行,为什么是一条一条的,因为存储设备物理上是串行的,存储的指令也是一个一个摆放的。

它的执行顺序自上而下,一次执行。

<?php

$a=1;

$b=0;

$c=$a;

$a=$b;

$b=$c;

echo $a;

echo "\n";

echo $b;

?>

条件语句

条件语句用于基于不同条件执行不同的动作

在 PHP 中,我们可以使用以下条件语句:

  • if 语句- 如果指定条件为真,则执行代码
  • if...else 语句- 如果条件为 true,则执行代码;如果条件为 false,则执行另一端代码
  • if...elseif....else 语句- 根据两个以上的条件执行不同的代码块
  • switch 语句 - 选择多个代码块之一来执行

if语句

if 语句用于在指定条件为 true 时执行代码。

if (条件) {

 当条件为 true 时执行的代码;

}

if-else语句

if....else 语句在条件为 true 时执行代码在条件为 false 时执行另一段代码

if (条件) {

 条件为 true 时执行的代码;

} else {

 条件为 false 时执行的代码;

}

if....elseif....if语句

if....elseif...else 语句来根据两个以上的条件执行不同的代码

if (条件) {

 条件为 true 时执行的代码;

} elseif (condition) {

 在不符合前者条件的情况下,该条件为 true 时执行的代码;

} else {

 在前两者条件都不符合的情况下,该条件为 false 时执行的代码;

}

<?php

$t=25;


if ($t<10) {

 echo "你好";

} elseif ($t<20) {

 echo "你能行";

} else {

 echo "加油";

}


?>

//$t=5   ,输出 你好

//$t=15  ,输出 你能行

//$t=25  ,输出 加油

Switch语句

switch 语句用于基于不同条件执行不同动作。

switch (expression)

{

case label1:

 expression = label1 时执行的代码 ;

 break;  

case label2:

 expression = label2 时执行的代码 ;

 break;

default:

 表达式的值不等于 label1 及 label2 时执行的代码;

}

工作原理:

  1. 对表达式(通常是变量)进行一次计算
  2. 把表达式的值与结构中 case 的值进行比较
  3. 如果存在匹配,则执行与 case 关联的代码
  4. 代码执行后,break 语句阻止代码跳入下一个 case 中继续执行
  5. 如果没有 case 为真,则使用 default 语句.

循环语句

在 PHP 中,我们有以下循环语句:

  • while- 只要指定条件为真,则循环代码块
  • do...while- 先执行一次代码块,然后只要指定条件为真则重复循环
  • for- 循环代码块指定次数
  • foreach - 遍历数组中的每个元素并循环代码块

while循环语句

while 循环在指定条件为 true 时执行代码块。

while (条件为真) {

 要执行的代码;

}

<?php


$x=1;

while($x<=5) {

 echo "这个数字是:$x <br>";

 $x++;

}

?>

do...while 循环语句

do {  

要执行的代码;

} while (条件为真);

<?php

$x=1;

do {

 echo "这个数字是:$x <br>";

 $x++;

} while ($x<=5);

?>

do while语句,会在先执行行循环语句内的语句后,再次进行条件判断。

这意味着,该循环不论是否满足条件都会执行一次。

<?php

$x=6;

do {

 echo "这个数字是:$x <br>";

 $x++;

} while ($x<=5);

?>

for循环语句

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

<?php

for($x=0;$x<=10;$x++){

echo "数字是:$x<br>";

}

foreach语句

foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。

foreach ($array as $value) {

 code to be executed;

}

每进行一次循环迭代,当前数组元素的值就会被赋值给 $value 变量,并且数组指针会逐一地移动,直到到达最后一个数组元素。

<?php

$colors = array("red","green","blue","yellow");


foreach ($colors as $value) {

 echo "$value <br>";

}

?>

函数

用户定义函数

  • 除了内建的 PHP 函数,我们可以创建我们自己的函数。
  • 函数是可以在程序中重复使用的语句块。
  • 页面加载时函数不会立即执行。
  • 函数只有在被调用时才会执行。

创建函数

function functionName() {  

被执行的代码;

}

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

函数名对大小写不敏感。

<?php

function say() {

 echo "nihao";

}


say(); // nihao

?>

函数参数

  • 可以通过参数向函数传递信息。参数类似变量。
  • 参数被定义在函数名之后,括号内部。您可以添加任意多参数,只要用逗号隔开即可。
  • 如果设置了默认参数,在没有传入参数时,会自动调用默认值。

function functionName( 参数1,参数2,.......) {  

被执行的代码;

}

<?php

function say($name) {

 echo "nihao,".$name;

}


say("Alice"); // nihao,Alice

?>

函数返回值

<?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);

?>

数组

数组是特殊的变量,数组能够在单独的变量名中存储一个或多个值。

创建数组

array()函数用于创建数组。

索引数组

<?php

$names=array("Alice","Bob");

echo "you are".$names[0]."he is".$names[1];

?>

count() -  函数获得数组的长度

count()函数用于返回数组的长度。

<?php

$names=array("Alice","Bob");

echo cout($names);

?>

遍历索引数组

借助for循环,遍历输出索引数组的所有值。

<?php

$names=array("Alice","Bob");

$length=count($names);

for($i=0;$i<$length;$i++){

echo "name:".$names[$i];

echo "\n";

}

?>

关联数组

关联数组是使用您分配给数组的指定键的数组。

<?php

$names=array("He"=>"BOb","Her"=>"Alice");

echo "He is ".$names['He'];

?>

遍历关联数组

借用foreach循环语句,遍历并输出关联数组的所有值。

<?php

$names=array("He"=>"BOb","Her"=>"Alice");


foreach($names as $x=>$x_value){

echo "Key=".$x.",Value=".$x_value;

echo "\n";


}


?>

数组排序

数组中的元素能够以字母或数字顺序进行升序或降序排序。

  • sort() - 以升序对数组排序
  • rsort() - 以降序对数组排序
  • asort() - 根据值,以升序对关联数组进行排序
  • ksort() - 根据键,以升序对关联数组进行排序
  • arsort() - 根据值,以降序对关联数组进行排序
  • krsort() - 根据键,以降序对关联数组进行排序
sort()-对数组进行升序排序

按照数字或者字母顺序进行升序

<?php

$names=array("BOb","Alice");

$length=count($names);

echo "排序前";

echo "\n";

for($i=0;$i<$length;$i++){

echo $names[$i];

echo "\n";

}

sort($names);


echo "排序后";

echo "\n";

for($i=0;$i<$length;$i++){

echo $names[$i];

echo "\n";

}

?>

rsort()- 对数组进行降序排序

<?php

$names=array("BOb","Alice");

$length=count($names);

echo "排序前";

echo "\n";

for($i=0;$i<$length;$i++){

echo $names[$i];

echo "\n";

}

rsort($names);


echo "排序后";

echo "\n";

for($i=0;$i<$length;$i++){

echo $names[$i];

echo "\n";

}

?>

asort()-根据值对数组进行升序排序

<?php

$age=array("Bill"=>"63","Steve"=>"56","Elon"=>"47");

asort($age);


foreach($age as $x=>$x_value)

   {

   echo "Key=" . $x . ", Value=" . $x_value;

   echo "<br>";

   }

?>

arsort()- 根据值对数组进行降序排序

ksort() -根据键对数组进行升序排序

<?php

$age=array("Bill"=>"28","Steve"=>"66","Elon"=>"47");

ksort($age);


foreach($age as $x=>$x_value)

   {

   echo "Key=" . $x . ", Value=" . $x_value;

   echo "\n";

   }

?>

krsort() -根据键对数组进行降序排序

<?php

$age=array("Bill"=>"28","Steve"=>"66","Elon"=>"47");

krsort($age);


foreach($age as $x=>$x_value)

   {

   echo "Key=" . $x . ", Value=" . $x_value;

   echo "\n";

   }

?>

超全局变量

PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

超全局变量在 PHP 4.1.0 中引入,是在全部作用域中始终可用的内置变量。

$GLOBALS — 引用全局作用域中可用的全部变量

$GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。

PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。

变量的名字就是数组的键。

<?php

$x = 30;

$y = 65;


function addition() {

  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];

}


addition();

echo $z;

?>// 95

$_SERVER

$_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息。

$_SERVER 是一个包含诸如头部(headers)、路径(paths)和脚本位置(script locations)的数组。数组的实体由 web 服务器创建。不能保证所有的服务器都能产生所有的信息;服务器可能忽略了一些信息,或者产生了一些未在下面列出的新的信息。

超级全局变量,在所有作用域中始终可用的内置变量。

在函数或方法中您不需要使用 global $_SERVER; 访问它,就如同使用 $HTTP_SERVER_VARS 一样。

$HTTP_SERVER_VARS 包含着同样的信息,但是不是一个自动全局变量。(注意: $HTTP_SERVER_VARS 和 $_SERVER 是不同的变量,PHP 处理它们的方式不同。)

在 PHP 4.1.0 及以后版本使用。之前的版本,使用$HTTP_SERVER_VARS。

$_SERVER['PHP_SELF']          //返回当前执行脚本的文件名。

$_SERVER['SERVER_NAME']      

//返回当前运行脚本所在的服务器的主机名(比如 www.w3schools.cn)。

$_SERVER['SCRIPT_FILENAME']   //返回当前执行脚本的绝对路径。

$_SERVER['SCRIPT_URI']       //返回当前页面的 URI。

$_SERVER['SCRIPT_NAME']       //返回当前脚本的路径。

<?php

echo $_SERVER['PHP_SELF'];

echo "<br>";

echo $_SERVER['SERVER_NAME'];

echo "<br>";

echo $_SERVER['HTTP_HOST'];

echo "<br>";

echo $_SERVER['HTTP_REFERER'];

echo "<br>";

echo $_SERVER['HTTP_USER_AGENT'];

echo "<br>";

echo $_SERVER['SCRIPT_NAME'];

?>

https://www.w3school.com.cn/php/php_superglobals.asp

PHP $_SERVER 全局变量

$_REQUEST

PHP $_REQUEST 用于收集 HTML 表单提交的数据。

<html>

<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

Name: <input type="text" name="fname">

<input type="submit">

</form>


<?php

$name = $_REQUEST['fname'];

echo $name;

?>


</body>

</html>

$_GET

PHP $_GET 也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。

$_GET 也可以收集 URL 中的发送的数据。

<html>

<body>


<a href="test_get.php?subject=PHP&web=W3school.com.cn">测试 $GET</a>


</body>

</html>

<html>

<body>


<?php

echo "在 " . $_GET['web'] . " 学习 " . $_GET['subject'];

?>


</body>

</html>

目录
相关文章
|
2月前
|
存储 Java PHP
探索PHP的世界:从基础到进阶
【9月更文挑战第24天】在这篇文章中,我们将一起深入探索PHP的奇妙世界。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息。我们将从PHP的基础开始,然后逐步深入到更复杂的主题。我们将通过实际的代码示例来演示各种概念,以便你可以更好地理解和应用这些知识。让我们一起踏上这个有趣的旅程吧!
|
1月前
|
PHP 开发者
php基础知识
【10月更文挑战第2天】php基础知识
33 6
|
3月前
|
Oracle 关系型数据库 MySQL
掌握PHP:从基础到进阶
【8月更文挑战第31天】这篇文章将带你进入PHP的世界,从基础语法开始,逐步深入到面向对象编程和数据库操作。我们将通过实例来理解PHP的强大功能,并探讨如何在实际开发中应用这些知识。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的参考。
|
4月前
|
SQL 前端开发 IDE
如何学习PHP基础?
【7月更文挑战第2天】如何学习PHP基础?
30 0
|
存储 应用服务中间件 PHP
PHP简单入门
PHP简单入门
PHP基础学习练习
PHP基础学习练习
54 0
|
SQL 存储 人工智能
php基础知识(一)
PHP is the best language for web programming, but what about other languages? PHP是网络编程最好的语言,但其他语言又怎样呢?
97 1
php基础知识(一)
PHP——你已经学会了编程
PHP——你已经学会了编程
PHP——人人都会编程
PHP——人人都会编程