一、认识PHP
PHP(Hypertext PreProcessor,即超文本预处理器),是一种通用的开源服务器端脚本语言。所以,PHP脚本在服务器上执行。
PHP文件是什么
- PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码
- PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器
- PHP 文件的默认文件扩展名是 “.php”
PHP能做什么
- PHP 可以生成动态页面内容
- PHP 可以创建、打开、读取、写入、关闭服务器上的文件
- PHP 可以收集表单数据
- PHP 可以发送和接收 cookies
- PHP 可以添加、删除、修改您的数据库中的数据
- PHP 可以限制用户访问您的网站上的一些页面
- PHP 可以加密数据
通过 PHP,您不再限于输出 HTML。您可以输出图像、PDF 文件,甚至 Flash 电影。您还可以输出任意的文本,比如 XHTML 和 XML。
为什么使用PHP
- PHP 可在不同的平台上运行(Windows、Linux、Unix、Mac OS X 等)
- PHP 与目前几乎所有的正在被使用的服务器相兼容(Apache、IIS 等)
- PHP 提供了广泛的数据库支持
- PHP 是免费的,可从官方的 PHP 资源下载它:www.php.net
- PHP 易于学习,并可高效地运行在服务器端
二、PHP语法
PHP 脚本在服务器上执行,然后将纯 HTML 结果发送回浏览器。
PHP 脚本可以放在文档中的任何位置。
PHP 脚本以
?php 开始,以 ?
结束:
<?php
//PHP代码
?>
PHP 文件的默认文件扩展名是 “.php”。
PHP 文件通常包含 HTML 标签和一些 PHP 脚本代码。
下面,我们提供了一个简单的 PHP 文件实例,它可以向浏览器输出文本 “Hello World!”:
<!DOCTYPE html>
<html>
<head>
<title>我的第一个PHP代码</title>
</head>
<body>
<?php
echo "My First PHP Page!";
?>
</body>
</html>
PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。
通过 PHP,有两种在浏览器输出文本的基础指令:echo 和 print。
//为PHP的单行注释
/*
PHP多行注释
PHP多行注释
*/
三、PHP变量
变量是用于存储信息的”容器”:
实例:
<?php
$x = 5;
$y = 6;
$z = $x + $z;
echo $z;
?>
与代数类似
x=5
y=6
z=x+y
在代数中,我们使用字母(如 x),并给它赋值(如 5)。
从上面的表达式 z=x+y ,我们可以计算出 z 的值为 11。
在 PHP 中,这些字母被称为变量。
PHP 变量
与代数类似,可以给 PHP 变量赋予某个值(x=5)或者表达式(z=x+y)。
变量可以是很短的名称(如 x 和 y)或者更具描述性的名称(如 age、carname、totalvolume)。
PHP 变量规则:
- 变量以 $ 符号开始,后面跟着变量的名称
- 变量名必须以字母或者下划线字符开始
- 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
- 变量名不能包含空格
- 变量名是区分大小写的
PHP 是一门弱类型语言
在上面的实例中,我们注意到,不必向 PHP 声明该变量的数据类型。
PHP 会根据变量的值,自动把变量转换为正确的数据类型。
在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。
PHP 变量作用域
变量的作用域是脚本中变量可被引用/使用的部分。
PHP 有四种不同的变量作用域:
- local
- global
- static
- parameter
局部和全局作用域
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问:
<?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";
?>
运行结果:
测试局部变量:
变量 x 为:
变量 y 为: 10
测试全局变量:
变量 x 为: 5
变量 y 为:
在以上实例中 myTest() 函数定义了 $x
和 $y
变量。 $x
变量在函数外声明,所以它是全局变量 ,$y
变量在函数内声明所以它是局部变量。
当我们调用myTest()函数并输出两个变量的值, 函数将会输出局部变量 $y
的值,但是不能输出 $x
的值,因为 $x
变量在函数外定义,无法在函数内使用,如果要在一个函数中访问一个全局变量,需要使用 global
关键字。
然后我们在myTest()函数外输出两个变量的值,函数将会输出全局部变量$x
的值,但是不能输出 $y
的值,因为 $y
变量在函数中定义,属于局部变量。
注:你可以在不同函数中使用相同的变量名称,因为这些函数内定义的变量名是局部变量,只作用于该函数内。
PHP global 关键字
global 关键字用于在函数内访问全局变量。
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:
<?php
$x = 5;
$y = 10;
function myTest(){
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y;
?>
运行结果为:15
PHP 将所有全局变量存储在一个名为$GLOBALS[index]
的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。
上述代码可写为如下所示:
<?php
$x = 5;
$y = 10;
function myTest(){
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y;
?>
Static 作用域
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候我们希望某个局部变量不要被删除。
要做到这一点,可以在第一次声明变量时使用 static 关键字:
<?php
function myTest(){
static $x = 0;
echo $x;
echo "<br>";
$x++;
}
myTest();
myTest();
myTest();
?>
然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值。
注:该变量仍然是函数的局部变量。
参数作用域
参数是通过调用代码将值传递给函数的局部变量。
参数是在参数列表中声明的,作为函数声明的一部分:
<?php
function myTest($x){
echo $x;
}
myTest(55);
?>
四、 PHP echo/print
echo 和 print 语句
在 PHP 中有两个基本的输出方式: echo 和 print。
PHP echo 语句
echo 是一个语言结构,使用的时候可以不用加括号,也可以加上括号: echo 或 echo()。
显示字符串
下面的实例演示了如何使用 echo 命令输出字符串(字符串可以包含 HTML 标签):
<?php
echo "<h2>PHP 很有趣!</h2>";
echo "Hello World!<br>";
echo "我要学PHP<br>";
echo "这是一个字符串,", "使用了", "多个", "参数";
?>
运行结果:
PHP 很有趣!
Hello World!
我要学PHP
这是一个字符串,使用了多个参数
下面的实例演示了如何使用 echo 命令输出变量、数组和字符串:
<?php
$txt = "Hello World";
$URL = "https://blog.csdn.net/qq_36595013";
$fruits = array("apple", "orange", "banana");;
echo $txt;
echo "<br>";
echo "我的CSDN主页地址是:$URL";
echo "<br>";
echo "我每天都要吃一个{$fruits[0]}";
?>
运行结果是:
Hello World
我的CSDN主页地址是:https://blog.csdn.net/qq_36595013
我每天都要吃一个apple
PHP print 语句
print 同样是一个语言结构,可以使用括号,也可以不使用括号: print 或 print()。
显示字符串
下面的实例演示了如何使用 print 命令输出字符串(字符串可以包含 HTML 标签):
<?php
print "Hello World!";
print "<h2>PHP很有趣</h2>";
print "我要学习PHP!";
?>
显示变量
下面的实例演示了如何使用 print 命令输出变量和字符串:
<?php
$txt = "Hello World";
$URL = "https://blog.csdn.net/qq_36595013";
$fruits = array("apple", "orange", "banana");;
print $txt;
print "<br>";
print "我的CSDN主页地址是:$URL";
print "<br>";
print "我每天都要吃一个{$fruits[0]}";
?>
五、PHP EOF(heredoc) 使用说明
PHP EOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字串的方法。
使用概述:
- 必须后接分号,否则编译通不过。
- EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
- 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
- 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
- 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义
- 位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符.或,来拼接
<?php
echo <<<EOF
<p>Hello World!</p>
<h1>标题1<h1>
"Hello!"
EOF;
?>
注意:
1. 以 <<<EOF
开始标记开始,以 EOF
结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。
2. 开始标记和结束标记相同,比如常用大写的 EOT、EOD、EOF 来表示,但是不只限于那几个(也可以用:JSON、HTML等),只要保证开始标记和结束标记不在正文中出现即可。
3. 位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符 . 或 , 来拼接,如下:
<?php
$name = "王维";
$like= <<<EOF
"123"$name
<br>
"Hello World!"
EOF;
echo $like;
?>
运行结果:
“123”王维
“Hello World!”
heredoc常用在输出包含大量HTML语法d文档的时候。比如:函数outputhtml()要输出HTML的主页。可以有两种写法。很明显第二种写法比较简单和易于阅读。
第一种
function outputhtml(){
echo "<html>";
echo "<head><title>主页</title></head>";
echo "<body>主页内容</body>";
echo "</html>;
}
第二种
function outputhtml()
{
echo <<<EOT
<html>
<head><title>主页</title></head>
<body>主页内容</body>
</html>
EOT;
}
outputhtml();
六、PHP数据类型
数据类型
String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。
PHP 字符串
一个字符串是一串字符的序列,就像 “Hello world!”。
你可以将任何文本放在单引号和双引号中:
PHP 整型
整数是一个没有小数的数字。
整数规则:
- 整数必须至少有一个数字 (0-9)
- 整数不能包含逗号或空格
- 整数是没有小数点的
- 整数可以是正数或负数
- 整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。
在以下实例中我们将测试不同的数字。
PHPvar_dump()
函数返回变量的数据类型和值:
<?php
$x = 528; //正数
var_dump($x);
echo "<br>";
$y = -25; //负数
var_dump($y);
echo "<br>";
$z = 0x24; //十六进制
var_dump($z);
echo "<br>";
$w = 056; //八进制
var_dump($w);
?>
结果为:
int(528)
int(-25)
int(36)
int(46)
PHP 浮点型
浮点数是带小数部分的数字,或是指数形式。
在以下实例中我们将测试不同的数字。 PHP var_dump() 函数返回变量的数据类型和值:
<?php
$x = 3.14159;
var_dump($x);
echo "<br>";
$y = 3.2e3;
var_dump($y);
echo "<br>";
$z = 4E-5;
var_dump($z);
echo "<br>";
?>
运行结果:
float(3.14159)
float(3200)
float(4.0E-5)
PHP 布尔型
布尔型可以是 TRUE 或 FALSE。布尔型通常用于条件判断。
$x = TRUE;
$y = FALSE;
PHP 数组
数组可以在一个变量中存储多个值。
在以下实例中创建了一个数组, 然后使用 PHP var_dump() 函数返回数组的数据类型和值:
<?php
$fruits = array('apple', 'orange', 'banana');
var_dump($fruits);
?>
运行结果:
array(3) {
[0]=>
string(5) “apple”
[1]=>
string(6) “orange”
[2]=>
string(6) “banana”
}
PHP 对象
对象数据类型也可以用于存储数据。
在 PHP 中,对象必须声明。
首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。
然后我们在类中定义数据类型,然后在实例化的类中使用数据类型:
<?php
calss fruits
{
var $color;
function _color($color = "green"){
$this->color = $color;
}
function what_color{
return $this->color;
}
}
?>
以上实例中PHP关键字this就是指向当前对象实例的指针,不指向任何其他对象或类。
PHP NULL 值
NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。
NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。
可以通过设置变量值为 NULL 来清空变量数据:
<?php
$x = 25;
$x = null;
var_dump($x);
?>