三小时入门PHP5语法基础

PHP是什么?

PHP是一门后端动态解释型计算机高级语言,通常用来编写或者生成动态网页,主要负责数据的处理与渲染。(这里是指用PHP嵌入网页里面的形式,如今能够直接用一些JS的框架去渲染网页数据了,PHP主要用来作数据处理)php

在学习PHP以前,你须要了解HTML,最好有C语言或者C++,Python等其余高级语言基础html

PHP通常须要与web服务器软件一块儿使用,如Apache,Nginx,IIS这些服务器软件,固然这些软件首先须要配置好PHP环境。推荐使用phpstudy这个软件在你的电脑上建立本身的PHP学习环境,点击下载phpstudy,若是连接失效请到http://www.phpstudy.net/自行搜索下载python

怎么使用phpstudy

推荐一个更加方便的集成环境工具,laragon.exe能够很方便的部署php开发环境而且可以自动完成虚拟主机的配置下载连接web

1.下载完成后解压到D:\phpstudy\目录下数据库

2.打开phpstudy这个软件,会自动开启Apache的web服务和MySQL数据库服务,若是都为绿色的点表示服务开启成功 编程

image.png

3.在浏览器地址栏输入localhost按下回车,出现下面这个网页表示安装成功 后端

image.png

4.在D:\phpstudy\www\目录里面放入你写的PHP文件,如我放入一个叫作test.php的文件,该文件内容以下面HelloWorld标题代码所示数组

5.在浏览器地址栏输入localhost/test.php,按下回车键便可打开该网页,输出了Hello World 浏览器

image.png

Hello World

像下面这样直接嵌入网页中输出HelloWorld,直接用echo指令输出到网页上服务器

<!DOCTYPE html>
<html lang="zh-cn">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <?php
  echo "Hello World";
  ?>
</body>
</html>
复制代码

这个文件必须保存为.php文件,不能保存为.html文件,不然里面的 这一段不会被解析

能够看出,在php文件里面含有html代码时PHP的代码片断以 “<?php ” 开始以 “ ?> ”结束,若是php文件里面不含任何HTML的代码,则只须要写 <?php

注释

跟大多数编程语言同样

// 用在单行注释

/* 和 */ 用在多行注释

变量

用$后面跟上变量名初始化和使用变量,如:

<?php
$x=5;
$y=6;
$s="Hello World!";
$z=$x+$y;
echo $z.$s;   //输出11Hello World
?>
复制代码

能够看出PHP是一种弱类型的语言,用$声明的变量既能够是数字也能够是字符串等其余的数据类型,其中字符串的链接符是用" . ",能够将多个字符链接起来,如

<?php
$x = "Hello";
$y = 'World';
$z = $x.$y;
echo $z;   //输出HelloWorld
复制代码

细心的朋友会注意到$y = 'World'; 这一句用的是单引号,其实PHP里面单引号和双引号均可以表示字符串,可是必需要成对出现。

PHP的语句和变量是严格区分大小写的,神奇的是,PHP还有不少特殊的全局变量,对于程序的编写有很大的便利,将在后面说明

常量

PHP中的常量使用 define() 函数,函数语法以下:

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
复制代码

其中,

name : 常量名(不须要加$符号)

value : 常量的值(能够为任意数据类型)

case_insensitive: 默认为false区分大小写,若为true则不区分常量名的大小写 如:

<?php
define("PI",3.14);
$r = 2;
echo PI*$r*$r;    //输出 12.56
复制代码

数据类型

PHP中有以下几种数据类型: String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值) 前三种前面已经使用过了,简单介绍下字符串和后面几种,关于对象后面再详细说明:

字符串

经常使用字符串的处理函数

strlen() : 获取字符串长度

$s = "Hello World!";
echo strlen($s);   //输出12
复制代码

特别的,对于中文来讲

<?php
echo strlen("你好世界");   // 输出 12
复制代码

由于在默认编码下一个中文占3个字符数,可使用mb_strlen()指定编码输出

<?php
echo mb_strlen("你好世界","utf-8");   // 输出 4
复制代码

strpos() : 在字符串内查找一个字符或一段指定的文本。 若是在字符串中找到匹配,该函数会返回第一个匹配的字符位置。若是未找到匹配,则返回 false。

<?php 
echo strpos("Hello world!","world");  // 输出6
复制代码

md5() : 计算字符串的 MD5 散列,一般用于简单加密

<?php
echo md5("password");   //输出5f4dcc3b5aa765d61d8327deb882cf99
复制代码

布尔型

true 和 false 两个值 例如:

<?php
$x = true;
var_dump($x);    //输出bool(true) 
复制代码

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

数组

PHP中用函数 array() 来建立数组,其中有索引数组,关联数组,多维数据 索引数组(用从0开始的下标表示数组里面对应的值)

<?php
$student = array("Kevin","Bob","Tom");
echo $student[0]." Love ".$student[2];    //输出Kevin Love Tom
复制代码

可使用函数count(student) 获取数组student的长度为3

关联数组 (含有键值对" key => value "的数组,每一个value值都有它的key值)

<?php
$age = array("Kevin"=>18,"Bob"=>26,"Tom"=>17);
echo $age['Kevin'];    //输出18
复制代码

多维数组

<?php
$sites = array 
( 
    "runoob"=>array 
    ( 
        "百度", 
        "http://www.baidu.com" 
    ), 
    "google"=>array 
    ( 
        "Google 搜索", 
        "http://www.google.com" 
    ), 
    "taobao"=>array 
    ( 
        "淘宝", 
        "http://www.taobao.com" 
    ) 
); 
echo $sites['taobao'][1];    //输出http://www.taobao.com
复制代码

对于数组的排序,能够看下这个教程 www.runoob.com/php/php-arr…

空值

NULL 值表示变量没有值。能够经过将变量赋值为空值来清空变量数据。

运算符

PHP里面的不少运算符其实跟C语言同样的,因此没有不少要讲的,其中注意一下下面这些运算符:

运算符 做用说明
. 点号,并置运算符,用于链接字符串
=== 绝对等于,用于判断,表示两个变量类型和值都相等
+ 即表示数学上算术相加,也能够用在两个数组链接

对运算符不是很了解的能够看看这个教程:www.runoob.com/php/php-ope…

逻辑语句

判断语句

if 语句 - 在条件成立时执行代码 if...else 语句 - 在条件成立时执行一块代码,条件不成立时执行另外一块代码 if...elseif....else 语句 - 在若干条件之一成立时执行一个代码块 switch 语句 - 在若干条件之一成立时执行一个代码块 特别地,要记得在switch语句里面用break;跳出每个选项。

循环语句

像C语言同样的循环 while - 只要指定的条件成立,则循环执行代码块 do...while - 首先执行一次代码块,而后在指定的条件成立时重复这个循环 for - 循环执行代码块指定的次数 着重说一下PHP特有的foreach循环: foreach主要是用来遍历数组的,以下所示:

<?php
$age = array("Kevin"=>18,"Bob"=>26,"Tom"=>17);
foreach ($age as $name=>$a )
{
  echo $name."的年龄为".$a."<br>";
}
/*输出 Kevin的年龄为18 Bob的年龄为26 Tom的年龄为17 */
复制代码

函数

PHP像这样声明一个函数

<?php
function 函数名(参数列表) {
    // 要执行的代码
}
复制代码

参数能够有默认值,函数的返回值用return直接返回,能够返回任意数据类型的返回值

函数的变量做用域: 如在下面的程序中

<?php 
$x=5; // 全局变量 
function myTest() { 
    $y=10; // 局部变量 
    echo "变量 x 为: $x";   //会报错Notice: Undefined variable: x in D:\phpstudy\WWW\test.php on line 6
    echo "<br>";          //换行
    echo "变量 y 为: $y";   //输出变量y为:5
}  
myTest(); 
复制代码

为何第6行代码会报错呢?由于在函数内部里面是不能直接访问全局变量x的,函数内部初始化的变量y也只能在函数内部起做用,若是须要在函数内使用全局变量,则须要先在函数内声明,使用global指令

<?php 
$x=5; // 全局变量 
function myTest() { 
    global $x;     //声明全局变量$x
    $y=10; // 局部变量 
    echo "变量 x 为: $x";   //输出变量x为:5
    echo "<br>";    //换行
    echo "变量 y 为: $y";   //输出变量y为:5
}  
myTest(); 
复制代码

PHP的特殊变量

魔术变量

__FILE__ : 文件的完整路径和文件名。 __LINE__ : 文本中的当前行号。 __DIR__ :文件所在当前目录。 __FUNCTION__:用在函数里面,返回函数的名字。 __CLASS__ :用在类里面,返回类的名字。 __NAMESPACE__:返回当前命名空间的名字。

超级全局变量

该内容详见教程:www.runoob.com/php/php-sup…

$GLOBALS: 是一个关联数组,任何声明的全局变量都会保存到这个数组里面去,该数组的key值是全局变量的名字,value值是全局变量的值

$_SERVER:是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由Web服务器建立。不能保证每一个服务器都提供所有项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。

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

$_POST:收集表单经过POST方式上传的数据(在HTML里面指定form的method= "POST")

$_GET:一样被普遍应用于收集表单数据,也用于URL发送的数据

命名空间

命名空间是为了不与PHP内部的类/变量/函数或者第三方类库名字冲突引入的至关于别名的东西,经过使用不一样的命名空间和设置别名能够避免这些冲突。

声明命名空间: namespace 名称; 使用命名空间: use 名称 as 别名; 其中“as 别名”也能够省略。

通常放到PHP代码文件的首行。 也能够在一个文件里面使用多个命名空间,用 { } 将不一样的命名空间分开 如:

<?php
namespace MyProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}

namespace { // 全局代码
session_start();
$a = MyProject\connect();
echo MyProject\Connection::start();
}
复制代码

面向对象

学过C++或者python,Java的话都知道什么是面向对象编程。

声明类

<?php
class 类名{
    public $变量名;    //php中的变量的须要加上修饰符
    public function 函数名(){
          //函数的内容
    }
}
复制代码

每一个类有一个$this变量,用来表明对象自己,能够经过$this对象调用类的变量或方法。 建立对象使用new关键字,以下所示:

<?php
class Student {
    function __construct( $name, $age ) {      //构造函数
       $this->name = $name;
       $this->age = $age;
    }
}
// 实例化对象
$xiaoming = new Student("xiaoming",18);
echo $xiaoming->age;        //输出18
复制代码

继承

使用关键字extends表明继承,如子类继承父类的形式以下:

<?php
class Child extends Parent {
   // 代码部分
}
复制代码

访问控制

public(公有):公有的类成员能够在任何地方被访问。

protected(受保护):受保护的类成员则能够被其自身以及其子类和父类访问。

private(私有):私有的类成员则只能被其定义所在的类访问。

抽象类

任何一个类,若是它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。 定义为抽象的类不能被实例化。使用关键字abstract声明类,以下

<?php
abstract class ClassName {
    //抽象类的内容
}
复制代码

Static 关键字

声明类属性或方法为 static(静态),就能够不实例化类而直接访问。 静态属性不能经过一个类已实例化的对象来访问(但静态方法能够)。 因为静态方法不须要经过对象便可调用,因此伪变量 $this 在静态方法中不可用。 静态属性不能够由对象经过 -> 操做符来访问。

关于PHP的面向对象编程还有不少须要注意的地方,可是可能简单的网页后端编程里面须要掌握的语法基础就是这些了,能够多看几遍“菜鸟教程”的PHP教程:www.runoob.com/php/php-tut…

OK到这里基本上你已经了解了PHP的语法基础,而后你须要学习的就是PHP的一些标准库的运用了,好比文件操做,GD图形库(制做图片验证码),用PHP进行MySQL数据库操做等。

为方便网站服务器后端开发,你能够尝试去了解一下PHP的开发框架,好比国内流行的ThinkPHP5,不少特性的Laravel,以及不少人使用的Yii

相关文章
相关标签/搜索