PHP语法1—基础

基础 PHP语法

PHP 脚本以 <?php 开头,以 ?> 结尾
PHP 语句以分号结尾(;)。PHP 代码块的关闭标签也会自动表明分号(因此在 PHP 代码块的最后一行不必使用分号)。

<!DOCTYPE html>
<html>
<body>

<h1>我的第一张 PHP 页面</h1>

<?php
echo "Hello World!";
?>

</body>
</html>

PHP 的注释

分别为 // (单行), #(单行) , /* */ (多行)

<!DOCTYPE html>
<html>
<body>

<?php
// 这是单行注释

# 这也是单行注释

/*
这是多行注释块
它横跨了
多行
*/
?>
</body>
</html>

PHP 大小写敏感

在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感
不过在 PHP 中,所有变量都对大小写敏感

PHP 变量

变量是存储信息的容器
PHP 变量可用于保存值(x=5)和表达式(z=x+y)
变量的名称可以很短(比如 x 和 y),也可以取更具描述性的名称(比如 carname、total_volume)。
PHP 变量规则:

  • 变量以 $ 符号开头,其后是变量的名称
  • 变量名称必须以字母或下划线开头
  • 变量名称不能以数字开头
  • 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
  • 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
    注释:PHP 变量名称对大小写敏感!

PHP 没有创建变量的命令,变量会在首次为其赋值时被创建

<?php
$txt="Hello world!";
$x=5;
$y=10.5;
?>

PHP 变量作用域

在 PHP 中,可以在脚本的任意位置对变量进行声明。
变量的作用域指的是变量能够被引用/使用的那部分脚本。
PHP 有三种不同的变量作用域:
local(局部)、global(全局)、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";
?>

PHP global 关键词

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

<?php
$x=5;
$y=10;
function myTest() {
  global $x,$y;
  $y=$x+$y;
myTest();
echo $y; // 输出 15
?>

PHP static 关键词

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

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

<?php

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

myTest();
myTest();
myTest();

?>

static修饰 https://www.cnblogs.com/52php/p/5658168.html

PHP 5 echo 和 print 语句

在 PHP 中,有两种基本的输出方法:echo 和 print
echo 和 print 之间的差异:

  • echo - 能够输出一个以上的字符串
  • print - 只能输出一个字符串,并始终返回 1
    提示:echo 比 print 稍快,因为它不返回任何值。

echo
echo 是一个语言结构,有无括号均可使用:echo 或 echo()。
显示字符串

<?php
echo "<h2>PHP is fun!</h2>";
echo "Hello world!<br>";
echo "I'm about to learn PHP!<br>";
echo "This", " string", " was", " made", " with multiple parameters.";
?>

显示变量

<?php
$txt1="Learn PHP";
$txt2="W3School.com.cn";
$cars=array("Volvo","BMW","SAAB");

echo $txt1;
echo "<br>";
echo "Study PHP at $txt2";
echo "My car is a {$cars[0]}";
?>

print
print 也是语言结构,有无括号均可使用:print 或 print()。
显示字符串

<?php
print "<h2>PHP is fun!</h2>";
print "Hello world!<br>";
print "I'm about to learn PHP!";
?>

显示变量

?php
$txt1="Learn PHP";
$txt2="W3School.com.cn";
$cars=array("Volvo","BMW","SAAB");

print $txt1;
print "<br>";
print "Study PHP at $txt2";
print "My car is a {$cars[0]}";
?>

PHP 数据类型

PHP var_dump() 会返回变量的数据类型和值

PHP 字符串
字符串是字符序列,比如 "Hello world!" --- $x = "Hello world!"
字符串可以是引号内的任何文本。您可以使用单引号或双引号

PHP 整数
整数是没有小数的数字。 $x = -345;
整数规则:

  • 整数必须有至少一个数字(0-9)
  • 整数不能包含逗号或空格
  • 整数不能有小数点
  • 整数正负均可

可以用三种格式规定整数:十进制、十六进制(前缀是 0x)或八进制(前缀是 0)

PHP 浮点数
浮点数是有小数点或指数形式的数字。 $x = 10.365

PHP 逻辑
逻辑是 true 或 false。逻辑常用于条件测试

PHP 数组
数组在一个变量中存储多个值。

<?php 
$cars=array("Volvo","BMW","SAAB");
var_dump($cars);
?>

PHP 对象
对象是存储数据和有关如何处理数据的信息的数据类型。
在 PHP 中,必须明确地声明对象。
首先我们必须声明对象的类。对此,我们使用 class 关键词。类是包含属性和方法的结构。
然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型:

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

PHP NULL 值
特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值。
NULL 值标识变量是否为空。也用于区分空字符串与空值数据库。
可以通过把值设置为 NULL,将变量清空

PHP 字符串函数

PHP strlen() 函数
strlen() 函数返回字符串的长度,以字符计
提示:strlen() 常用于循环和其他函数,在确定字符串何时结束很重要时。(例如,在循环中,我们也许需要在字符串的最后一个字符之后停止循环)。

对字符串中的单词计数
PHP str_word_count() 函数对字符串中的单词进行计数

反转字符串
PHP strrev() 函数反转字符串 ('123' -> '321')

PHP strpos() 函数
strpos() 函数用于检索字符串内指定的字符或文本。
如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE
 strpos("Hello world!","world")
提示:字符串中首字符的位置是 0 而不是 1

替换字符串中的文本
PHP str_replace() 函数用一些字符串替换字符串中的另一些字符
 str_replace("world", "Kitty", "Hello world!");

PHP 常量

常量是单个值的标识符(名称)。在脚本中无法改变该值。
有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。
注释:与变量不同,常量贯穿整个脚本是自动全局的。
设置 PHP 常量
如需设置常量,请使用 define() 函数 - 它使用三个参数:

  • 首个参数定义常量的名称
  • 第二个参数定义常量的值
  • 可选的第三个参数规定常量名是否对大小写不敏感。默认是 false,true为敏感。
<?php
define("GREETING", "Welcome to W3School.com.cn!");
echo GREETING;
?>

PHP 运算符

PHP 算数运算符
+加法  $x + $y  $x 与 $y  求和
-减法  $x - $y  $x 与 $y 的差数
* 乘法  $x * $y  $x 与 $y 的乘积
/ 除法  $x / $y  $x 与 $y 的商数
% 取模  $x % $y  $x 除 $y 的余数

PHP 赋值运算符
x = y  x = y  右侧表达式为左侧运算数设置值。
x += y  x = x + y  加
x -= y  x = x - y  减
x *= y  x = x * y  乘
x /= y  x = x / y  除
x %= y  x = x % y  模数

PHP 字符串运算符
.   串接  $txt1 = "Hello"  $txt2 = $txt1 . " world!" 现在 $txt2 包含 "Hello world!"
.= 串接赋值 $txt1 = "Hello" $txt1 .= " world!"  现在 $txt1 包含 "Hello world!"

PHP 递增/递减运算符
++$x  前递增  $x 加一递增,然后返回 $x   (现加后返值)
$x++ 后递增  返回 $x,然后 $x 加一递增   (现返值后加)
--$x 前递减  $x 减一递减,然后返回 $x  (现加减返值)
$x-- 后递减  返回 $x,然后 $x 减一递减 (现返值后减)

PHP 比较运算符

== 等于 $x == $y 如果 $x 等于 $y,则返回 true。
=== 全等(完全相同) $x === $y 如果 $x 等于 $y,且它们类型相同,则返回 true。
!= 不等于 $x != $y 如果 $x 不等于 $y,则返回 true。
<> 不等于 $x <> $y 如果 $x 不等于 $y,则返回 true。
!== 不全等(完全不同) $x !== $y 如果 $x 不等于 $y,或它们类型不相同,则返回 true
> 大于 $x > $y 如果 $x 大于 $y,则返回 true。
< 小于 $x < $y 如果 $x 小于 $y,则返回 true
>= 大于或等于 $x >= $y 如果 $x 大于或者等于 $y,则返回 true
<= 小于或等于 $x <= $y 如果 $x 小于或者等于 $y,则返回 true。

PHP 逻辑运算符

and $x and $y 如果 $x 和 $y 都为 true,则返回 true。
or $x or $y 如果 $x 和 $y 至少有一个为 true,则返回 true
xor 异或 $x xor $y 如果 $x 和 $y 有且仅有一个为 true,则返回 true。
&& $x && $y 如果 $x 和 $y 都为 true,则返回 true。
|| $x || $y 如果 $x 和 $y 至少有一个为 true,则返回 true。
! !$x 如果 $x 不为 true,则返回 true。

PHP 数组运算符

+ 联合 $x + $y $x 和 $y 的联合(但不覆盖重复的键)
== 相等 $x == $y 如果 $x 和 $y 拥有相同的键/值对,则返回 true
=== 全等 $x === $y 如果 $x 和 $y 拥有相同的键/值对,且顺序相同类型相同,则返回 true。
!= 不相等 $x != $y 如果 $x 不等于 $y,则返回 true。
<> 不相等 $x <> $y 如果 $x 不等于 $y,则返回 true。
!== 不全等 $x !== $y 如果 $x 与 $y 完全不同,则返回 true

PHP if...else...elseif 语句

条件语句用于基于不同条件执行不同的动作
在 PHP 中,我们可以使用以下条件语句:

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

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

<?php
$favfruit="orange";

switch ($favfruit) {
   case "apple":
     echo "Your favorite fruit is apple!";
     break;
   case "banana":
     echo "Your favorite fruit is banana!";
     break;
   case "orange":
     echo "Your favorite fruit is orange!";
     break;
   default:
     echo "Your favorite fruit is neither apple, banana, or orange!";
}
?>

工作原理:

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

PHP while 循环

while 循环在指定条件为 true 时执行代码块
在 PHP 中,我们有以下循环语句:

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

do...while 循环
 do...while 循环首先会执行一次代码块,然后检查条件,如果指定条件为真,则重复循环。

do {
  要执行的代码;
} while (条件为真);

请注意,do while 循环只在执行循环内的语句之后才对条件进行测试。这意味着 do while 循环至少会执行一次语句,即使条件测试在第一次就失败了。

PHP for 循环
如果您已经提前确定脚本运行的次数,可以使用 for 循环。

for (init counter; test counter; increment counter) {
  code to be executed;
}

参数:

  • init counter:初始化循环计数器的值
  • test counter:: 评估每个循环迭代。如果值为 TRUE,继续循环。如果它的值为 FALSE,循环结束。
  • increment counter:增加循环计数器的值

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

foreach ($array as $value) {
  code to be executed;
}

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

PHP 函数

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

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

function functionName() {
  被执行的代码;
}

注意:函数名能够以字母或下划线开头(而非数字)。
注意:函数名对大小写不敏感。
提示:函数名应该能够反映函数所执行的任务

PHP 函数参数
可以通过参数向函数传递信息。参数类似变量。
参数被定义在函数名之后,括号内部。您可以添加任意多参数,只要用逗号隔开即可。

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

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

PHP 默认参数值

<?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 数组

数组能够在单一变量名中存储许多值,并且您能够通过引用索引号来访问某个值。
array() 函数用于创建数组

<?php
$cars=array("porsche","BMW","Volvo");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>

在 PHP 中,有三种数组类型:

  • 索引数组 - 带有数字索引的数组
  • 关联数组 - 带有指定键的数组
  • 多维数组 - 包含一个或多个数组的数组

PHP 索引数组
有两种创建索引数组的方法:
索引是自动分配的(索引从 0 开始),或者也可以手动分配索引

获得数组的长度 - count() 函数
count() 函数用于返回数组的长度(元素数)

遍历索引数组
如需遍历并输出索引数组的所有值,您可以使用 for 循环

<?php
$cars=array("porsche","BMW","Volvo");
$arrlength=count($cars);

for($x=0;$x<$arrlength;$x++) {
  echo $cars[$x];
  echo "<br>";
}
?>

PHP 关联数组
关联数组是使用您分配给数组的指定键的数组。
有两种创建关联数组的方法:

$age=array("Bill"=>"35","Steve"=>"37","Elon"=>"43");

或者:
$age['Bill']="63";
$age['Steve']="56";
$age['Elon']="47";

遍历关联数组
如需遍历并输出关联数组的所有值,您可以使用 foreach 循环

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

foreach($age as $x=>$x_value) {
  echo "Key=" . $x . ", Value=" . $x_value;
  echo "<br>";
}
?>

PHP - 数组的排序函数
在本节中,我们将学习如下 PHP 数组排序函数:

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

PHP 全局变量 - 超全局变量

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

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

$GLOBALS — 引用全局作用域中可用的全部变量
$GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。
PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。

PHP $_SERVER
$_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息
下表列出了您能够在 $_SERVER 中访问的最重要的元素

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

PHP $_POST
PHP $_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量

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


转载至:https://www.w3school.com.cn/php/index.asp

posted @ 2020-12-01 16:41  Black-Sweater  阅读(80)  评论(0编辑  收藏  举报