php基础教程中,part-1包含哪些知识点?
摘要:1、基本语法 PHP 脚本可放置于文档中的任何位置。 PHP 脚本以 <?php 开头,以 ?>&#1
1、基本语法
PHP 脚本可放置于文档中的任何位置。
PHP 脚本以<?php开头,以?>结尾
<?php
// 此处是 PHP 代码
?>
PHP 文件的默认文件扩展名是 ".php"。
PHP 文件通常包含 HTML 标签以及一些 PHP 脚本代码。
下面的例子是一个简单的 PHP 文件,其中包含了使用内建 PHP 函数 "echo" 在网页上输出文本 "Hello World!" 的一段 PHP 脚本
<!DOCTYPE html>
<html>
<body>
<h1>我的第一张 PHP 页面</h1>
<?php
echo "Hello World!";
?>
</body>
</html>
2、php注释
<!DOCTYPE html>
<html>
<body>
<?php
// 这是单行注释
# 这也是单行注释
/*
这是多行注释块
它横跨了
多行
*/
echo "Hello World!";
?>
</body>
</html>
3、php是大小写 不敏感的
<!DOCTYPE html>
<html>
<body>
<!--大小写 不敏感-->
<?php
ECHO "Hello World!<br>";
echo "Hello World!<br>";
EcHo "Hello World!<br>";
?>
</body>
</html>
4、php变量
变量视为存储数据的容器,
PHP 是一门类型松散的语言
在上面的例子中,请注意我们不必告知 PHP 变量的数据类型。
PHP 根据它的值,自动把变量转换为正确的数据类型
PHP 变量规则:
变量以 $ 符号开头,其后是变量的名称
变量名称必须以字母或下划线开头
变量名称不能以数字开头
变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
注释:PHP 变量名称对大小写敏感!
PHP 有三种不同的变量作用域:
local(局部) 函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
global(全局) 函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。global 关键词用于访问函数内的全局变量,要做到这一点,请在(函数内部)变量前面使用 global 关键词
static(静态)
!doctype html>
<html>
<body>
<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>
</body>
</html>
<!DOCTYPE html>
<html>
<body>
<?php
$x=5; // global scope
function myTest() {
$y=10; // local scope
echo "<p>在函数内部测试变量:</p>";
echo "变量 x 是:$x";
echo "<br>";
echo "变量 y 是:$y";
}
myTest();
echo "<p>在函数之外测试变量:</p>";
echo "变量 x 是:$x";
echo "<br>";
echo "变量 y 是:$y";
?>
</body>
</html>
<!DOCTYPE html>
<html>
<body>
<?php
$x=5;
$y=10;
function myTest() {
global $x,$y;
$y=$x+$y;
}
myTest(); // 运行函数
echo $y; // 输出变量 $y 的新值 15
?>
</body>
</html>
以上代码输出结果为15(演示global变量使用方法)
<!DOCTYPE html>
<html>
<body>
<?php
function myTest() {
static $x=0;
echo $x;
$x++;
}
myTest();
echo "<br>";
myTest();
echo "<br>";
myTest();
echo "<br>";
myTest();
echo "<br>";
myTest();
?>
</body>
</html>
以上代码输出结果为0,1,2,3,4,5,(演示static静态变量用,然后,每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息,注释:该变量仍然是函数的局部变量)
5、echo和print语句
echo 和 print 之间的差异:
echo - 能够输出一个以上的字符串
print - 只能输出一个字符串,并始终返回 1
提示:echo 比 print 稍快,因为它不返回任何值。
echo 、print都是一个语言结构,有无括号均可使用:echo 或 echo()、:print 或 print()。
<!DOCTYPE html>
<html>
<body>
<?php
echo "<h2>PHP 很有趣!</h2>";
echo "Hello world!<br>";
echo "我计划学习 PHP!<br>";
echo "这段话", "由", "多个", "字符串", "串接而成。";
$txt1="Learn PHP";
$txt2="W3School.com.cn";
$cars=array("Volvo","BMW","SAAB");
echo $txt1;
echo "<br>";
echo "Study PHP at $txt2";
echo "<br>";
echo "My car is a {$cars[0]}";
?>
</body>
</html>
<!DOCTYPE html>
<html>
<body>
<?php
print "<h2>PHP is fun!</h2>";
print "Hello world!<br>";
print "I'm about to learn PHP!";
$txt1="Learn PHP";
$txt2="W3School.com.cn";
$cars=array("Volvo","BMW","SAAB");
print $txt1;
print "<br>";
print "Study PHP at $txt2";
print "<br>";
print "My car is a {$cars[0]}";
?>
</body>
</html>
6、php数据类型
字符串、整数、浮点数、逻辑、数组、对象、NULL。
<!DOCTYPE html>
<html>
<body>
<?php
#字符串
$x = "Hello world!";
echo $x;
echo "<br>";
$x = 'Hello world!';
echo $x;
//整数
<?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);
//浮点数
$x = 10.365;
var_dump($x);
echo "<br>";
$x = 2.4e3;
var_dump($x);
echo "<br>";
$x = 8E-5;
var_dump($x);
//boolean
$x=true;
$y=false;
//数组
$cars=array("Volvo","BMW","SAAB");
var_dump($cars);
//对象
class Car
{
var $color;
function Car($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");
// show herbie properties
echo "\herbie: Properties\n";
print_vars($herbie);
/*
特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值。
NULL 值标示变量是否为空。也用于区分空字符串与空值数据库。
可以通过把值设置为 NULL,将变量清空
*/
$x="Hello world!";
$x=null;
var_dump($x)
?>
</body>
</html>
7、php字符串函数
strlen("Hello world!");
以上代码的输出是:12
提示:strlen() 常用于循环和其他函数,在确定字符串何时结束很重要时。(例如,在循环中,我们也许需要在字符串的最后一个字符之后停止循环)。、
<?php
echo strpos("Hello world!","world");
?>
以上代码的输出是:6。
提示:上例中字符串 "world" 的位置是 6。是 6(而不是 7)的理由是,字符串中首字符的位置是 0 而不是 1。
8、php常量
常量类似变量,但是常量一旦被定义就无法更改或撤销定义。
如需设置常量,请使用 define() 函数 - 它使用三个参数:
首个参数定义常量的名称
第二个参数定义常量的值
可选的第三个参数规定常量名是否对大小写敏感。默认是 false。
下例创建了一个对大小写敏感的常量,值为 "Welcome to W3School.com.cn!":
define("GREETING", "Welcome to W3School.com.cn!");
echo GREETING;
下例创建了一个对大小写不敏感的常量,值为 "Welcome to W3School.com.cn!":
define("GREETING", "Welcome to W3School.com.cn!", true);
echo greeting;
9、运算符
①算数运算符
运算符名称例子结果
+
加法
$x + $y
$x 与 $y 求和
-
减法
$x - $y
$x 与 $y 的差数
*
乘法
$x * $y
$x 与 $y 的乘积
/
除法
$x / $y
$x 与 $y 的商数
%
模数
$x % $y
$x 除 $y 的余数
$x=10;
$y=6;
echo ($x + $y); // 输出 16
echo ($x - $y); // 输出 4
echo ($x * $y); // 输出 60
echo ($x / $y); // 输出 1.6666666666667
echo ($x % $y); // 输出 4
②值运算符
赋值等同于描述
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
$x=10;
echo $x; // 输出 10
$y=20;
$y += 100;
echo $y; // 输出 120
$z=50;
$z -= 25;
echo $z; // 输出 25
$i=5;
$i *= 6;
echo $i; // 输出 30
$j=10;
$j /= 5;
echo $j; // 输出 2
$k=15;
$k %= 4;
echo $k; // 输出 3
?>
③字符串运算符
运算符名称例子结果
.
串接
$txt1 = "Hello" $txt2 = $txt1 . " world!"
现在 $txt2 包含 "Hello world!"
.=
串接赋值
$txt1 = "Hello" $txt1 .= " world!"
现在 $txt1 包含 "Hello world!"
<?php
$a = "Hello";
$b = $a . " world!";
echo $b; // 输出 Hello world!
$x="Hello";
$x .= " world!";
echo $x; // 输出 Hello world!
?>
④递增递减运算符
运算符名称描述
++$x
前递增
$x 加一递增,然后返回 $x
$x++
后递增
返回 $x,然后 $x 加一递增
--$x
前递减
$x 减一递减,然后返回 $x
$x--
后递减
返回 $x,然后 $x 减一递减
<?php
$x=10;
echo ++$x; // 输出 11
$y=10;
echo $y++; // 输出 10
$z=5;
echo --$z; // 输出 4
$i=5;
echo $i--; // 输出 5
?>
⑤比较运算符
运算符名称例子结果
==
等于
$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
$x=100;
$y="100";
var_dump($x == $y);
echo "<br>";
var_dump($x === $y);
echo "<br>";
var_dump($x != $y);
echo "<br>";
var_dump($x !== $y);
echo "<br>";
$a=50;
$b=90;
var_dump($a > $b);
echo "<br>";
var_dump($a < $b);
?>
⑥逻辑运算符
运算符名称例子结果
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。
⑦数组运算符
运算符名称例子结果
+
联合
$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
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
$z = $x + $y; // $x 与 $y 的联合
var_dump($z);
var_dump($x == $y);
var_dump($x === $y);
var_dump($x != $y);
var_dump($x <> $y);
var_dump($x !== $y);
?>
10、控制结构
if else
<?php
$t=date("H");
if ($t<"10") {
echo "Have a good morning!";
} elseif ($t<"20") {
echo "Have a good day!";
} else {
echo "Have a good night!";
}
?>
switch
<?php
switch ($x)
{
case 1:
echo "Number 1";
break;
case 2:
echo "Number 2";
break;
case 3:
echo "Number 3";
break;
default:
echo "No number between 1 and 3";
}
?>
</body>
</html>
While
<?php
$x=1;
while($x<=5) {
echo "这个数字是:$x <br>";
$x++;
}
?>
Do While循环
<?php
$x=1;
do {
echo "这个数字是:$x <br>";
$x++;
} while ($x<=5);
?>
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>";
}
?>
11、函数
不带参数的函数
<?php
function writeMsg() {
echo "Hello world!";
}
writeMsg(); // 调用函数
?>
带参数的函数
<?php
function familyName($fname) {
echo "$fname Zhang.<br>";
}
familyName("Li");
familyName("Hong");
familyName("Tao");
familyName("Xiao Mei");
familyName("Jian");
?>
还有一种情况,是默认的参数:
<?php
function setHeight($minheight=50) {
echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // 将使用默认值 50
setHeight(135);
setHeight(80);
?>
函数返回值:
<?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);
?>
12、数组
数组能够在单独的变量名中存储一个或多个值。
<?php
$cars=array("Volvo","BMW","SAAB");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
在 PHP 中,有三种数组类型:
索引数组- 带有数字索引的数组
关联数组- 带有指定键的数组
多维数组- 包含一个或多个数组的数组
①索引数组
索引是自动分配的(索引从 0 开始):
$cars=array("Volvo","BMW","SAAB");
或者也可以手动分配索引:
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="SAAB";
获取数组长度
<?php
$cars=array("Volvo","BMW","SAAB");
echo count($cars);
?>
遍历数组
<?php
$cars=array("Volvo","BMW","SAAB");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++) {
echo $cars[$x];
echo "<br>";
}
?>
②关联数组
关联数组是使用您分配给数组的指定键的数组。
有两种创建关联数组的方法:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
或者:
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>
遍历:
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
foreach($age as $x=>$x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
③多维数组
13、排序
sort() - 以升序对数组排序
rsort() - 以降序对数组排序
asort() - 根据值,以升序对关联数组进行排序
ksort() - 根据键,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序
14、超全局变量
超全局变量 在 PHP 4.1.0 中引入,是在全部作用域中始终可用的内置变量。
PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。
这些超全局变量是:
$GLOBALS引用全局作用域中可用的全部变量
$_SERVER这种超全局变量保存关于报头、路径和脚本位置的信息。
$_REQUEST用于收集 HTML 表单提交的数据。
$_POST广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量
$_GET可用于收集提交 HTML 表单 (method="get") 之后的表单数据。
$_FILES
$_ENV
$_COOKIE
$_SESSION
