PHP基础(一)

PHP是一种运行在服务器端的脚本语言,可以嵌入到HTML中。

PHP代码标记

在PHP历史中,可以使用多种标记来区分PHP脚本。

ASP标记:<%php代码%>

短标记:<?php代码?>   简短风格  SGML(标准通用标记语言)

以上两种基本弃用,如果想使用需要在配置文件中开启。(配置文件:php文件夹中的php.ini文件,搜索short_open_tag, asp_tags)

 脚本标记:<script language=”php”>php代码</script>

标准标记(常用):<?php   php代码   ?>

XML风格(可扩展标记语言)

PHP注释

行注释:一次注释一行

    //:后面内容为注释

块注释:一次注释多行

    /*:

        中间内容全部都是注释

    */

PHP语句分隔符

PHP中,代码是以行为单位,一般以分号为行结束符。

特殊说明:

  1. PHP中标记结束符“?>”有自带语句结束符的效果,最后一行PHP可以没有语句结束符“;”。
  2. PHP中其实很多代码的书写并不是嵌入到HTML中,而是单独存在,通常书写习惯不建议使用标记结束符“?>”,PHP会自动从开始到最后全部认为是PHP代码,从而解析。

PHP变量

php是一种动态网站开发的脚本语言,动态语言特点是交互性,会有数据的传递,而PHP作为“中间人”,需要进行数据的传递,传递的前提就是PHP能自己存储数据(临时存储)。

定义变量:在PHP中不需要任何关键字定义变量(赋值);

PHP中所有变量都必须使用“$”符号。

PHP中允许使用中文变量(不建议)。

删除变量:使用unset(变量名)。

预定义变量

预定义变量:提前定义的变量,系统定义的变量,存储许多需要用到的数据(预定义变量都是数组)。

$_GET:获取所有表单以get方式提交的数据

$_POST: :以post方式提交的数据

$_REQUEST:GET和POST提交的都保存

$GLOBALS:PHP中所有的全局变量

$_SERVER:服务器信息

$_SESSION: session会话数据

$_COOKIE: cookie会话信息

$_ENV:环境信息

$_FILES:用户上传的文件信息

可变变量:

$a = ‘b’;

$b=’bb’;

echo $a;//b

echo $$a;//bb—找到$a,解析结果:b,将前面的$符号与结果b绑定,:$b,然后解析。

变量传值:

值传递:$新变量 = $旧变量

引用传递:$新变量 = &$旧变量

常量

特点:数据不允许修改

常量只可以保存布尔值、整型、浮点型或字符串数据。

定义:

  1. 使用定义常量的函数:define(‘常量名’,常量值);
  2. PHP5.3之后才有:const 常量名 = 值;

命名规则:

  1. 常量不需要使用“$”符号,一旦使用系统就会认为是变量。
  2. 常量的名字组成由字母、数字和下划线组成,不能以数字开头。
  3. 常量的名字通常是以大写字母为主。
  4. 常量的命名规则比变量要松散,可以使用一些特殊字符,但只能使用define定义。 

使用(访问):

  1. 普通常量:直接使用。
  2. 特殊常量:constant(‘常量名’);

系统常量:系统帮助用户定义的常量,用户可以直接使用。

运行phpinfo()函数,可看到PHP预定义的许多常量。

常用的系统常量:

       PHP_VERSION: PHP版本号。

       PHP_INT_SIZE:整形大小。

       PHP_INT_MAX:整形能表示的最大值(PHP中整形允许出现负数:带符号)。

系统魔术常量:双下划线开始+常量名+双下划线结束。魔术常量的值通常会跟着环境变化,但是用户改变不了。

__DIR__:当前被执行的脚本所在电脑的绝对路径

__FILE__:当前被执行的脚本所在电脑的绝对路径(带自己文件的名字)

__LINE__:当前所属的行数

__NAMESPACE__:当前所属的命名空间

__CLASS__:当前所属的类

__METHOD__:当前所属的方法

数据类型

数据类型(data type)指的是存储的数据本身的类型,而不是变量的类型,PHP是一种弱类型语言,变量本身没有数据类型。

PHP八大数据类型:

PHP中将数据分为三大类,八小类。

简单(基本)数据类型

整型(int/integer)

占4个字节

浮点型(float/double)

占8个字节

字符串(string)

根据实际长度分配

布尔类型(bool/boolean)

只有true和false两种取值

复合数据类型

对象类型(object)

存放对象(面向对象)

数组类型(array)

存储多个数据(一次)

特殊数据类型

资源类型(resource)

存放资源数据(PHP外部数据,如数据库、文件)

空类型(NULL)

值就是一个NULL,不能运算,对大小写不敏感。当被赋值为NULL,或者尚未被赋值,或者被unset(),变量都被认为为NULL

Callable类型

可以传递给其他函数的函数

类型转换:

当前数据类型—>目标数据类型

  1. 自动转换:系统根据需求自己判定。
  2. 强制(手动)转换:人为根据需要的目标类型转换。

强制转换规则:在变量之前加一个括号(),然后在里面写上目标数据类型。

NULL类型用到unset()

其他类型转布尔类型:true或者false。

其他类型转数值:

  1. 布尔true为1,false为0.
  2. 字符串转数值:

a)       以字母开头的字符串,永远为0。

b)       以数字开头的字符串,取到碰到字母为止,(不会同时包含两个小数点)。

类型判断:通过一组以is_类型名的函数来判断:is_XXX(变量名),返回结果为布尔类型(true/false)。Bool类型不能用echo来查看,可以使用var_dump结构查看。

var_dump(变量1,变量2,…)—会将数据类型和值同时打印。

empty():判断数据的值是否为“空”,不是NULL,为空则返回true。(判断变量的值)

isset():判断数据存储的变量本身是否存在,存在变量返回true。(判断变量是否存在)

获取和设定数据(变量)的类型:

gettype(变量名):获取类型,得到的是该类型对应的字符串。(不推荐使用来测试某种类型,推荐使用is_*函数代替)

settype(变量名,数据类型):设定数据类型,与强制转换不同。

  1. 强制类型转换,是对数据复制的内容进行处理,(不会处理实际存储的内容),数据原来是什么类型,转换后仍是什么类型。
  2. settype会直接改变数据本身。

进制转换函数:

decbin():十进制转二进制

decoct():十进制转八进制

dechex():十进制转十六进制

bindec():二进制转十进制

octdec():八进制转十进制

bin2hex():二进制转十六进制

连接运算符:是PHP中将多个字符串拼接的一种符号。

. :将两个字符串连接到一起。

.=:复合运算,将左边的内容与右边的内容连接起来,然后重新复制给左边变量。

错误抑制符:有一些错误提前可以预知,又无法避免,但又不希望给用户看,可以是用错误抑制符。

@:在可能出错的表达式前面使用@符号即可。

使用错误抑制符,如果已经在php.ini文件中启用了PHP的track_errors特性,错误信息将会保存在全局变量$php_errormsg中。

执行操作符:反向单引号。位于与~同样的位置。

PHP会试着将反向单引号之间的命令当做服务器命令行命令来执行。表达式的值就是命令的执行结果。

 

流程控制

流程控制:代码执行的方向。

控制分类:

顺序结构:代码从上到下,顺序执行。(代码执行的最基本结构)

分支结构:给定一条件,同时有多种可执行代码(块),然后根据条件执行某一段代码。

    PHP中分支结构主要有两种:if分支和switch分支。

循环结构:在某个条件控制范围内,指定的代码(块)可以重复执行。

        For循环,while循环、do-while循环,foreach循环(专门针对数组)。

循环控制:

    中断控制:重新开始循环。

    continue 层级 //默认为1

    终止控制:循环直接进结束。

    break 层级 // 默认为1

流程控制替代语法:

   流程控制替代语法:分支和循环结构的替代语法。

    PHP与HTML混搭。

  

 1 <table border = 1>
 2     <?php for ($i = 1; $i < 10; $i++){?>
 3         <tr>
 4             <?php for($j = 1;$j <= $i; $j++){?>
 5                 <td>
 6                     <?php echo $i . '*' . $j . '=' . $i * $j;?>
 7                 </td>
 8             <?php }?>
 9         </tr>
10     <?php }?>
11 </table>
View Code

在PHP中这些大括号不美观,所以PHP提供了一种替代机制。

for(;;){  --》for(;;):

} --》endfor;

 1 <table border = 1>
 2     <?php for ($i = 1; $i < 10; $i++):?>
 3         <tr>
 4             <?php for($j = 1;$j <= $i; $j++):?>
 5                 <td>
 6                     <?php echo $i . '*' . $j . '=' . $i * $j;?>
 7                 </td>
 8             <?php endfor;?>
 9         </tr>
10     <?php endfor;?>
11 </table>
View Code

PHP的替代语法:PHP应该在HTML中只做数据输出,输出通常伴有条件判断和循环操作,因此,PHP提供了对应分支结构和循环结构的替代语法,全部都是对应的一个模式:

左大括号 { 使用冒号 :替代

右大括号 } 使用end+对应的起始标记替代

原文地址:https://www.cnblogs.com/sun-yanglu/p/9543366.html