第二阶段:核心编程 - PHP基础语法

2019-03-18  本文已影响0人  ft207741

menu:

一、php基础语法

二、变量及操作

三、预定义变量

四、内存原理(形象理解)

五、常量

六、php的数据类型


php基础语法 > 第二天视频 > 02php语法规则

一、PHP基本语法
  1. PHP语法规则

    • 如果文档后缀名是.htm,那即使文档里有php代码也不会交给php解析处理。只有后缀名是.php的文档才会交给PHP处理,然后php交还给Apache,Apache再交给browser显示;
    • php每一条语句后必须有;分号;
    • php中的变量名规则与python相同,方法、函数和类名最好遵照python规则;
  2. PHP标记

    • php开始至今存在四种标签;
    • 标准格式(xml) <?php ... ?>
    • script格式


      script格式标记
    • 短格式 <? ... ?> 默认未开启,需要在php文件夹 - php.ini里配置开启;
    • asp格式 <% ... %> 默认未开启,需要在php文件夹 - php.ini里配置开启;
  3. 注释

    • 单行注释 // 注释内容
    • 多行注释 /* 多行注释 */
<?php
/**
 * Created by PhpStorm.
 * User: JLP
 * Date: 2019/3/18
 * Time: 10:48
 */
?>

二、变量及操作
  1. 概念

    • 变量是内存中临时存储数据的一个空间,这个空间的名字就叫做变量名,变量名是用于对这个内存中的数据进行引用的;
  2. 声明变量

    • php中的变量必须以“$”开头,变量名只能包含字母、数字、下划线,且只能以字母或下划线开头;
    • $variable = value
$a = 10;
$b = 5;
$result = $a + $b;
echo $result;   // 15
  1. 修改变量的值
    • 重新赋值即可;
$name = "Bob";
$name = "Ham";
echo $name;   // Ham
  1. 删除变量
    • 语法:unset($variable);
$name = "Bob";
unset($name);
echo $name;   //  Undefined variable: name 
  1. 可变变量
    • 先解析item为age,然后解析age就能得到17;
$item = "age";
$age = 17;   // 先解析$item为age,然后解析$age就能得到17
echo $$item  // 17

$item = "age";
$$item = 17;   // 为动态变量赋值;
echo $age  // 17

三、 预定义变量

四、 内存原理(形象理解)
  1. 内存结构


    内存结构
    • 栈区
      • 保存的是变量名(术语叫引用)。对于cpu来说,读写速度是最快的。
    • 堆区
      • 存储的是“复杂”的数据:数组、对象;
    • 数据段
      • 存储的是简单的数据:整数型、浮点型
    • 代码段
      • 存储的是源代码对应的机器指令。(代码转换成的机器指令)
    • 输出缓存
      • 只要遇到输出命令,例如:echo、print、print_r、var_dump,这些指令都会将所要输出的数据放在 输出缓冲 中。
  2. php的执行过程

      1. 编译阶段
      • 进行语法检查、词法检查、代码优化;
      • 编译通过后将源代码转换成机器指令;
      • 编译阶段错误的提示信息;
      1. 执行阶段
      • 如果编译通过后,会将源代码对应的机器指令保存在代码段,再开始执行代码段中的机器指令;
      • 1、编译阶段
      • 1.1、语法检查、词法检查、代码优化,然后在代码段生成机器指令;
      • 2、执行阶段
      • 2.1、执行代码段中的代码
      • 2.2、编译阶段


        图片.png
  3. php嵌入到HTML的执行

    • 当php功能模块在处理一个php文件时,它只关心php代码(使用php标签包含的代码)。对于非php代码,它会原样输出;


      图片.png
  4. php变量中的传递方式

    • 在php中变量有两种传递方式:
      1. 赋值传值:
        • 使用一个变量a为另一个变量b赋值时,传递的事变量a的值,这种赋值方就是赋值传值


          赋值传值
      2. 引用传值:
        • 利用&符号来把赋值传值改变为引用传值。
        • 使用一个变量a为另一个b赋值时,传递的事变量a的地址,这种赋值方式就是引用传值;
        • 相当于python的可变数据类型;


          引用传值

五、常量
  1. 概念:

    • 常量就是一种特殊的变量,也是用于存储数据。常量一旦定义就不允许修改其值,常量本身也不允许删除。
  2. 定义

    • 语法:
        1. difine("const_name", value)
        1. const const_name = value
    • 说明:
        1. 常量一旦定义就不允许修改
        1. 常量的值只能是基本的数据类型(标量数据类型)
        1. 常量在命名时一般使用全大写形式,常量前面不需要加$符号;
    • define 和 const 的区别:
        1. define语法可以在分支结构中(if)定义常量,const不允许;
        1. define("PI", 3.14, true) // 如果函数内第3个参数为“true”,使用常量的时候可以不区分大小写;
    if(true){
        // 分支结构里只能用define
        define("PI", 3.14);  // 正确
        const PI = 3.14;     // 不正确
    }
        define("PI", 3.1415);   // 常量定义语法1;
        print(PI);    // 3.1415
        PI = 10;  // 常量不期待“=”Parse error: syntax error, unexpected '='
        const name = "Bob"; // 常量定义语法2;
//判断常量是否存在
const NAME = "Bob";  // 定义常量;
$result = defined("NAME");   // 判断常量是否存在;
var_dump($result)   // 函数用于输出变量的相关信息。 输出为:bool(true)
// 获取php的所有常量
$result = get_defined_constants();  // 查看php所有的常量
echo "<pre>";  // <pre> 标签的一个常见应用就是用来表示计算机的源代码。
print_r($result)   // 打印结果
//  单独获取PHP常量;
echo  "PHP_VERSION = ", PHP_VERSION, "<br/>";   // 5.6.30
echo "PHP_OS = ", PHP_OS, "<br/>";   // WINNT
echo "PHP_INT_MAX = ", PHP_INT_MAX, "<br/>";   //2147483647
  1. 魔术常量
    • php中定义了一组魔术常量;
echo __FILE__, "<br/>";  // 获取当前文件路径和文件名;
echo __DIR__, "<br/>";   // 获取当前的文件名;
echo __LINE__, "<br/>";  // 获取当前的行号;
echo __METHOD__, "<br/>";   // 获取当前方法的方法名;
echo __CLASS__, "<br/>";   // 获取当前类的类名;
echo __NAMESPACE__, "<br/>";   // 获取当前命名空间的空间名;
echo __FUNCTION__, "<br/>";  // 获取当前函数的函数名;

// 实例:显示当前函数的函数名;
function showInfo(){
    echo "function name is: ", __FUNCTION__, "<br>";
}
showInfo();

六、php的数据类型

  1. 数据类型的分类

    • php数据类型分3大类 8小类:
        1. 标量(scalar)数据类型;
        • int 整数型 int 和 float 统一归类为Number
        • float 浮点型
        • boolean 布尔型
        • string 字符串
        1. 复合数据类型;
        • Array 数组
        • Object 对象
        1. 特殊数据类型;
        • null null
        • resource 资源类型
  2. 整数型 int

    • 线性的整数
      • 十进制
        • $v = 255;
      • 八进制
        • 以0开头,且不能有超过7的数字;
      • 十六进制
        • 以0x开头,包含0-9 a-f
// 十进制
$v1 = 255;
echo $v1, "<br/>";   // 255
// 八进制
$v2 = 076;
echo $v2, "<br/>";   // 62
// 十六进制
$v3 = 0xFF;
echo $v3, "<br/>";  // 255
  1. 浮点型 float
    • 带有小数点的数都是浮点类型;
    • 小数点有两种表示方式:
        1. 普通方式
        • $v = 3.6;
        1. 科学计数法
        • $v = 12.345E-2; // 0.12345
// 不能随意得对两个小数进行比较;
if(0.9-0.3==0.6){
    echo("true");
}else{
    echo("false");    // false 
}
  1. 字符串 string
    • 字符串就是单引号 或 双引号括起来得字符。
      1. 使用单引号定义得字符串;
      • 单引号字符串里能转义的字符有 “ //, /' ”
      1. 使用双引号定义得字符串;
      • 双引号字符串里所有转义符都能被转义;
      1. heredoc
      • 第三种表达字符串的方法是用 heredoc 句法结构:<<<。在该运算符之后要提供一个标识符,然后换行。接下来是字符串 string 本身,最后要用前面定义的标识符作为结束标志
// heredoc
$bar = <<<EOT
里面可包含大段字符串 不需要考虑单双引号。
EOT;
  1. 布尔型 Bool
  2. 数组 Array
  3. 数组 null类型
  4. 资源类型

// heredoc
$bar = <<<EOT
里面可包含大段字符串 不需要考虑单双引号。
EOT;
上一篇下一篇

猜你喜欢

热点阅读