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>

目录
相关文章
|
6月前
|
JavaScript 前端开发 图形学
Three.js:Web 最重要的 3D 渲染引擎的技术综述
Three.js 是 Web 实时 3D 图形的事实标准,作为 WebGL 的结构化抽象层,它通过场景图、缓冲几何体、材质系统与高效渲染循环,简化 GPU 编程。本文深入解析其架构设计、性能优化关键点及底层原理,揭示高性能 3D 应用背后的工程技术。
795 1
|
人工智能 IDE 程序员
Qoder用户上手指南:安装、登录、快捷键、功能亮点(新用户免费领300credits,首购2美元/月)
这个容易让程序员上瘾的 Agentic Coding 平台有哪些上头的功能?对于小白开发者和资深开发者如何用好Qoder呢?
19524 6
Qoder用户上手指南:安装、登录、快捷键、功能亮点(新用户免费领300credits,首购2美元/月)
|
监控 安全 网络协议
这10款网络扫描工具,是个网工,都想全部安装!
这10款网络扫描工具,是个网工,都想全部安装!
3753 1
|
消息中间件 数据可视化 Kafka
kafka可视化工具
kafka可视化工具
1243 0
|
Oracle 关系型数据库 Java
plsql链接远程Oracle数据库步骤
实际工作中,我们往往需要使用 PLSQL Develope 工具连接远程服务器上的 ORACLE 数据库进行管理,但是由于 ORACLE 安装在本地电脑步骤繁琐,并且会耗费电脑的很大一部分资源,因此,我们寻求一种不需要在本地安装 ORACLE 数据库而能直接使用 PLSQL Develope 工具连接到远程服务器 ORACLE 的方法。
352 2
|
SQL Oracle 关系型数据库
PL/SQL 工具远程连接Oracle数据库方法,plsql免安装oracle客户端直接配置oci实战演示
PL/SQL 工具远程连接Oracle数据库方法,plsql免安装oracle客户端直接配置oci实战演示
751 0
PL/SQL 工具远程连接Oracle数据库方法,plsql免安装oracle客户端直接配置oci实战演示
|
移动开发
h5 Video打开本地摄像头和离开页面关闭摄像头
h5 Video打开本地摄像头和离开页面关闭摄像头
|
5天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
8559 37
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
4天前
|
缓存 测试技术 API
Qwen 3.7 Plus 与 Max 实测:性价比与多模态能力差异解析(2026)
2026 年 6 月 1 日,阿里悄无声息地发布了 Qwen 3.7 Plus,距 Qwen 3.7 Max 上线刚好 11 天。同样的 1M 上下文,同样的 35 小时自治上限。但价格才是头条:Plus 是 0.40/M输入,Max是 2.50/M——便宜约 6 倍——并且还能看图、看视频。Vision Arena 上 Plus 已经排到 #16。所以这周真正值得讨论的问题不是”要不要为视觉能力买单”,而是”Max 凭什么用 6 倍价格换来 2 个百分点的 benchmark 领先”。