°渐行渐远っ
程序员的修仙之路

PHP基础知识总结

1.PHP:英文全称(Hypertextprerocessor).

2.PHP文件可以包含文本,HTML,Javascript代码及PHP代码

3.PHP代码在服务器上执行,结果以html形式返回给浏览器。

4.PHP文件默认文件扩展名是“.php”

PHP能做什么:

1.    php可以生成动态的页面内容

2.    php可以创建,打开,读取,写入,关闭服务器上的文件

3.    php可以收集表单数据。

4.    php可以发送session或者cookies

5.    php可以添加删除修改您数据库的信息…
 

PHP安装

1.安装web服务器,常见的web服务器(ApacheApache,IIS, Nginx
这都是php中常用的web服务器,每个服务器也各有各的特点)
2.安装php官方 PHP 网站(PHP.net)有 PHP 的安装说明: http://php.net/manual/en/install.php
3.安装数据库推荐(mysql)
PHP集成环境,phpstudy,XAMPP…..

PHP的基本语法

PHP 脚本以 <?php 开始,以 ?> 结束:
PHP 中的每个代码行都必须以分号结束
两种在浏览器输出文本的基础指令:echo 和 print。

PHP的变量:

变量名称以$符号开始后面跟着变量的名称。
变量在您第一次赋值给它的时候被创建
变量名称必须以字母或下划线开头
变量名称不能以数字开头
变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
注释:PHP 变量名称对大小写敏感!

PHP 是一门弱类型语言

PHP 会根据变量的值,自动把变量转换为正确的数据类型。
在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。

PHP变量的作用域

local局部

global全局

static静态

local和global作用域:

函数之外声明的变量拥有global全局作用域,只能在函数之外进行访问

函数内部声明的变量拥有local局部作用域,只能在函数内部进行访问

global关键词

作用:在函数内部访问/定义全局变量

static关键词

作用:使函数完成/执行后,某个局部变量不被删除。在首次声明变量时使用static关键词

PHP输出

echo - 可以输出一个或多个字符串

print - 只允许输出一个字符串,返回值总为 1

print_r – 可以打印数组

var_dump – 打印数据的详细信息

提示:

·       echo 输出的速度比 print 快,echo 没有返回值,print有返回值1

·       echo 和 print 都是一个语言结构,使用的时候可以不用加括号,也可以加上括号。

PHP5数据类型

String(字符串), Integer(整型(INT)), Float(浮点型),Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。

字符串
你可以将任何文本放在单引号和双引号中

定义字符串的时候,用单引号或者双引号都是可以的。我个人习惯是用双引号。

例子:

 

<?php

$website = "NowaMagic";

$name = 'Gonn';

 

echo 'Welcome to visit $website. My name is$name.';

echo '<br>';

echo "Welcome to visit $website. Myname is $name.";

?>

程序输出:
Welcome to visit $website. My name is $name.
Welcome to visit NowaMagic. My name is Gonn.

用单引号括住的输出,并没有解析字符串变量,而使用双引号括住的输出,则解析了变量了,输出变量的值。

效率问题
普遍认为,在不需要变量解析的字符串输出,用单引号速度可能会快一些。
顺便说一句,对于不需要变量替换的纯字符串,大家都知道,因为在C/C++中,双引号才表示字符串,所以这种情况下,还是使用双引号的好。另外对于W3C标准来说, HTML中的属性值应该是使用双引号来包含的 ,所以不要习惯了单引号,到处滥用。

布尔型

布尔型可以是 TRUE 或 FALSE。

对象

在 PHP 中,对象必须声明。

首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。对象

在 PHP 中,对象必须声明。

首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。

常量

常量是一个简单值的标识符。该值在脚本中不能改变。 (常量名不需要加 $ 修饰符)。

注意: 常量在整个脚本中都可以使用。

设置常量,使用 define() 函数,函数语法如下:

define(string constant_name, mixed value,case_sensitive = true)

constant_name:必选参数,常量名称,即标志符。

value:必选参数,常量的值。

case_sensitive:可选参数,指定是否大小写敏感,设定为 true 表示不敏感。

运算符

<?php

//其他运算符略..

//逻辑运算符 !&& || and or xor

//数组运算符 合并: + 比较:== != === !==

$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);

?>

数组

Foreach():遍历数组

//遍历关联数组

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

foreach($age as $x=>$x_value)

{

   echo "Key=" . $x . ", Value=" . $x_value;

   echo "<br>";

}

数组排序

PHP数组排序函数:

   sort() - 对数组进行升序排列

   rsort() - 对数组进行降序排列

   asort() - 根据关联数组的值,对数组进行升序排列

   ksort() - 根据关联数组的键,对数组进行升序排列

   arsort() - 根据关联数组的值,对数组进行降序排列

krsort() - 根据关联数组的键,对数组进行降序排列

超级全局变量

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

   $GLOBALS:是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

   $_SERVER:是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;

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

   $_POST:被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"

   $_GET:同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。也可以收集URL中发送的数据

   $_COOKIE

   $_FILES

   $_ENV

$_SESSION

魔术变量

_LINE__:文件中的当前行号。

__FILE__:文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。

__DIR__:文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。

FUNCTION:函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的

CLASS :类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。

__METHOD__:类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)

命名空间

PHP 命名空间(namespace)是在PHP 5.3中加入的,如果你学过C#和Java,那命名空间就不算什么新事物。 不过在PHP当中还是有着相当重要的意义。
PHP 命名空间可以解决以下两类问题:
    用户代码与PHP内部的类/函数/常量之间的名字冲突。
创建别名(或简短)的名称,提高源代码的可读性。
命名空间使用
PHP 命名空间中的类名可以通过三种方式引用:
    非限定名称,或不包含前缀的类名称,例如 $a=new foo(); 或 foo::staticmethod();。如果当前命名空间是 currentnamespace,foo 将被解析为 currentnamespace\foo。如果使用 foo 的代码是全局的,不包含在任何命名空间中的代码,则 foo 会被解析为foo。 警告:如果命名空间中的函数或常量未定义,则该非限定的函数名称或常量名称会被解析为全局函数名称或常量名称。~~无命名空间前缀的引用,默认在当前命名空间查找,然后到全局命名空间找

 
    限定名称,或包含前缀的名称,例如 $a = new subnamespace\foo(); 或 subnamespace\foo::staticmethod();。如果当前的命名空间是 currentnamespace,则 foo 会被解析为 currentnamespace\subnamespace\foo。如果使用 foo 的代码是全局的,不包含在任何命名空间中的代码,foo 会被解析为subnamespace\foo。 ~~带相对命名空间前缀的(类似相对路径)引用,自动在开头添加调用代码所处的命名空间

 
完全限定名称,或包含了全局前缀操作符的名称,例如, $a = new \currentnamespace\foo(); 或 \currentnamespace\foo::staticmethod();。在这种情况下,foo 总是被解析为代码中的文字名(literal name)currentnamespace\foo。~~带绝对命名空间前缀的引用(类似绝对路径) 引用路径已明确 不用查找

PHP文件处理

打开文件
$file = fopen($fname, mode) //文件的名称, 打开模式
    r 只读。在文件的开头开始。
    r+ 读/写。在文件的开头开始。
    w 只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
    w+ 读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
    a 追加。打开并向文件末尾进行写操作,如果文件不存在,则创建新文件。
    a+ 读/追加。通过向文件末尾写内容,来保持文件内容。
    x 只写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
    x+ 读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

 
注释:如果 fopen() 函数无法打开指定文件,则返回 0 (false)。

Filesystem函数
 

    basename() 返回路径中的文件名部分。

    chgrp() 改变文件组。

    chmod() 改变文件模式。

    chown() 改变文件所有者。

    clearstatcache() 清除文件状态缓存。

    copy() 复制文件。

    delete() 参见unlink() 或 unset()

    dirname() 返回路径中的目录名称部分。

    disk_free_space() 返回目录的可用空间。

    disk_total_space() 返回一个目录的磁盘总容量。

    diskfreespace() disk_free_space() 的别名。

    fclose() 关闭打开的文件。

    feof() 测试文件指针是否到了文件末尾。

    fflush() 向打开的文件刷新缓冲输出。

    fgetc() 从打开的文件中返回字符。

    fgetcsv() 从打开的文件中解析一行,校验 CSV 字段。

    fgets() 从打开的文件中返回一行。

    fgetss() 从打开的文件中返回一行,并过滤掉 HTML 和 PHP 标签。

    file() 把文件读入一个数组中。

    file_exists() 检查文件或目录是否存在。

    file_get_contents() 把文件读入字符串。~~获取文件内容

    file_put_contents() 把字符串写入文件。~~写入文件内容

    fileatime() 返回文件的上次访问时间。

    filectime() 返回文件的上次修改时间。

    filegroup() 返回文件的组ID。

    fileinode() 返回文件的inode 编号。

    filemtime() 返回文件内容的上次修改时间。

    fileowner() 返回文件的用户ID (所有者)。

    fileperms() 返回文件的权限。

    filesize() 返回文件大小。

    filetype() 返回文件类型。

    flock() 锁定或释放文件。

    fnmatch() 根据指定的模式来匹配文件名或字符串。

    fopen() 打开一个文件或 URL。

    fpassthru() 从打开的文件中读数据,直到文件末尾(EOF),并向输出缓冲写结果。

    fputcsv() 把行格式化为CSV 并写入一个打开的文件中。

    fputs() fwrite() 的别名。

    fread() 读取打开的文件。

    fscanf() 根据指定的格式对输入进行解析。

    fseek() 在打开的文件中定位。

    fstat() 返回关于一个打开的文件的信息。

    ftell() 返回在打开文件中的当前位置。

    ftruncate() 把打开文件截断到指定的长度。

    fwrite() 写入打开的文件。

    glob() 返回一个包含匹配指定模式的文件名/目录的数组。

    is_dir() 判断文件是否是一个目录。

    is_executable() 判断文件是否可执行。

    is_file() 判断文件是否是常规的文件。

    is_link() 判断文件是否是连接。

    is_readable() 判断文件是否可读。

    is_uploaded_file() 判断文件是否是通过 HTTP POST 上传的。

    is_writable() 判断文件是否可写。

    is_writeable() is_writable() 的别名。

    lchgrp() 改变符号连接的组所有权。

    lchown() 改变符号连接的用户所有权。

    link() 创建一个硬连接。

    linkinfo() 返回有关一个硬连接的信息。

    lstat() 返回关于文件或符号连接的信息。

    mkdir() 创建目录。

    move_uploaded_file() 把上传的文件移动到新位置。

    parse_ini_file() 解析一个配置文件。

    parse_ini_string() 解析一个配置字符串。

    pathinfo() 返回关于文件路径的信息。

    pclose() 关闭由popen() 打开的进程。

    popen() 打开一个进程。

    readfile() 读取一个文件,并写入到输出缓冲。

    readlink() 返回符号连接的目标。

    realpath() 返回绝对路径名。

    realpath_cache_get() 返回高速缓存条目。

    realpath_cache_size() 返回高速缓存大小。

    rename() 重命名文件或目录。

    rewind() 倒回文件指针的位置。

    rmdir() 删除空的目录。

    set_file_buffer() 设置已打开文件的缓冲大小。

    stat() 返回关于文件的信息。

    symlink() 创建符号连接。

    tempnam() 创建唯一的临时文件。

    tmpfile() 创建唯一的临时文件。

    touch() 设置文件的访问和修改时间。

    umask() 改变文件的文件权限。

    unlink() 删除文件。

PHP JSON

    json_encode 对变量进行JSON 编码

    json_decode 对 JSON 格式的字符串进行解码,转换为 PHP 变量

    json_last_error 返回最后发生的错误

PHP数组函数

Array():创建一个数组

array_change_key_case():返回其键均为大写或小写的数组

array_chunk:把一个数组分割成新的数组块

array_column():返回输入数组中某个单一列的值

array_combine():通过合并两个数组(一个为键名数组,一个为键值数组)来创建一个新数组。

posted on 2017-11-06 10:43  &#176;渐行渐远っ  阅读(78)  评论(0编辑  收藏  举报