PHP入门基础


作者:Seiya

时间:2019年05月21日


前言

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。

PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。



基本语法


代码标识

PHP 脚本以 <?php 开始,以 ?> 结束。

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

提示:

PHP 脚本可以放在文档中的任何位置。


注释



数据类型


标量类型

是数据结构中最基本的单元,只能储存一个数据,包括整型int(integer)、浮点型float、字符串string、布尔型boolean四类。

1. String

字符串型可以用三种方法定义:单引号形式、双引号形式和Heredoc结构形式:

// Heredoc结构形式
<?php 
$string = <<< EOF
我有一只小毛驴,我从来也不骑。
EOF;

echo $string;
?>

注意:

当双引号中包含变量时,变量会与双引号中的内容连接在一起;

当单引号中包含变量时,变量会被当做字符串输出。

$love = "I love you!"; 

$string1 = "慕课网,$love";
$string2 = '慕课网,$love';

//输出:
慕课网,I love you!
慕课网,$love

2. Integer

类似于常见的整数。它可以用十进制、八进制、十六进制指定。

3. Float

浮点型(浮点数、双精度数或实数),也就是通常说的小数,可以用小数点或者科学计数法表示。科学计数法可以使用小写的e,也可以使用大写的E。

浮点数不能作于比较运算(浮点数的加减运算有误差)

4. Boolean

布尔类型中 FALSE 的七种情况:整型0(0),浮点数0(0.0),字符串0('0'),false,空数组(array()),NULL。

注意:

需要注意的是,当我们用”echo”指令输出布尔类型时,如果是“true”则输出的是“1”,“false”则什么也不输出。


复合类型

1. Array

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

2. Object

在 PHP 中,对象必须声明。

首先,你必须使用class关键字声明类对象,然后我们在类中定义数据类型,然后在实例化的类中使用数据类型。


特殊类型

1. NULL

NULL是空类型,对大小写不敏感,NULL类型只有一个取值,表示一个变量没有值,当被赋值为NULL,或者尚未被赋值,或者被unset(),这三种情况下变量被认为为NULL。

<?php 
error_reporting(0);     //禁止显示PHP警告提示

$var;                   
var_dump($var);         // NULL

$var = null;
var_dump($var1);        // NULL

$var = NULL;
var_dump( $var2);       // NULL

$var3 = "节日快乐!";
unset($var3);
var_dump($var3);        // NULL
?>

2. resource类型

资源(resource):资源是由专门的函数来建立和使用的,例如打开文件、数据连接、图形画布。

我们可以对资源进行操作(创建、使用和释放)。任何资源,在不需要的时候应该被及时释放。如果我们忘记了释放资源,系统自动启用垃圾回收机制,在页面执行完毕后回收资源,以避免内存被消耗殆尽。



变量


变量声明

PHP是一门松散类型的语言,不必向PHP声明变量的数据类型,PHP会自动把变量转换为自动的数据类型。

变量以 $ 符号开始,后面跟着变量的名称。

变量在您第一次赋值给它的时候被创建。


变量的作用域

1. 全局作用域

在所有函数外部定义的变量,拥有全局作用域。

除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。

提示:

PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用:

$GLOBALS

$_SERVER

$_REQUEST

$_POST

$_GET

$_COOKIE

$_FILES

$_ENV

$_SESSION

2. 局部作用域

在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问。

3. static作用域

当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除,可以使用 static关键字

4. 参数作用域

参数是通过调用代码将值传递给函数的局部变量,参数是在参数列表中声明的,作为函数声明的一部分。



常量

常量可以理解为值不变的量,或者是常量值被定义后,在脚本的其他任何地方都不可以被改变。

PHP中的常量分为自定义常量和系统常量。

常量主要功效是可以避免重复定义,篡改变量值。此外,使用常量还能提高代码的可维护性。


自定义常量

通过使用PHP中的函数define()定义:

<?php
$p = "PII";
define("PI", 3.14);
define($p, 3.1414)

echo PI;
echo "<br />";
echo PII;

// 输出
3.14
3.1414
?>

系统常量

系统常量是PHP已经定义好的常量,我们可以直接拿来使用,常见的系统常量有:

  1. __FILE__ :php程序文件名。它可以帮助我们获取当前文件在服务器的物理位置。

  2. __LINE__ :PHP程序文件行数。它可以告诉我们,当前代码在第几行。

  3. PHP_VERSION:当前解析器的版本号。它可以告诉我们当前PHP解析器的版本号,我们可以提前知道我们的PHP代码是否可被该PHP解析器解析。

  4. PHP_OS:执行当前PHP版本的操作系统名称。它可以告诉我们服务器所用的操作系统名称,我们可以根据该操作系统优化我们的代码。


常量获取

  • 使用常量名直接获取值:

    <?php
    define("PI",3.14);
    $r=1;
    $area = PI*$r*$r; //计算圆的面积
    ?>
    
  • 使用constant()函数:

    它和直接使用常量名输出的效果是一样的,但函数可以动态的输出不同的常量,在使用上要灵活、方便。

    <?php
    define("PI",3.14);
    $r=1;
    $area = constant("PI")*$r*$r; //计算圆的面积
    ?>
    

判断常量是否被定义

defined()函数可以帮助我们判断一个常量是否已经定义:

<?php 
define("PI1",3.14);
$p = "PI1";
$is1 = defined($p);
$is2 = defined("PI2")

var_dump($is1);
var_dump($is2);
?>


逻辑控制


顺序结构

顺序结构就像一条直线,按着顺序一直往下执行。我们编写的代码默认都是按照顺序结构执行的。

循环控制和条件判断

关于PHP循环控制以及条件判断的语法和C等语言类似,这里不过多记录。

foreach循环

在PHP中foreach循环语句,常用于遍历数组,一般有两种使用方式:不取下标、取下标。

<?php
// 只取值,不取下标
foreach (数组 as){
    ...
}

// 同时取下标和值
foreach (数组 as 下标 =>){
    ...
}
?>


运算符


赋值运算符

1. “=”:把右边表达式的值赋给左边的运算数。

它将右边表达式值复制一份,交给左边的运算数。换而言之,首先给左边的运算数申请了一块内存,然后把复制的值放到这个内存中。

2. “&”:引用赋值,意味着两个变量都指向同一个数据。

它将使两个变量共享一块内存,如果这个内存存储的数据变了,那么两个变量的值都会发生变化。

<?php 
$a = "我在学习PHP!";
$b = $a;
$c = &$a;
$a = "我天天在学习PHP!";

echo $b."<br />";
echo $c."<br />";
?>

// 输出
我在学习PHP!
我天天在学习PHP!

比较运算符


三元运算符

(“ ? : ”)三元运算符也是一个比较运算符,对于表达式(expr1) ? (expr2) : (expr3),如果expr1的值为true,则此表达式的值为expr2,否则为expr3。


逻辑运算符

逻辑运算符主用是进行逻辑运算的,例如:逻辑与、逻辑或、逻辑异或、逻辑非等,在PHP中常用的逻辑运算符如下表:


连接运算符

字符串连接运算符是为了将两个字符串进行连接,PHP中提供的字符串连接运算符有:

(1)连接运算符(“.”):它返回将右参数附加到左参数后面所得的字符串。

(2)连接赋值运算符(“.=”):它将右边参数附加到左边的参数后。


错误控制运算符

PHP中提供了一个错误控制运算符“@”,对于一些可能会在运行过程中出错的表达式时,我们不希望出错的时候给客户显示错误信息,这样对用户不友好。于是,可以将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉;

注意

错误控制前缀“@”不会屏蔽解析错误的信息,不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等。


算术运算符

PHP中的算术运算符与其他语言几乎没有区别,这里不过多记录。

最后更新时间: 7/7/2019, 9:55:38 PM