博客列表 >PHP基础变量命名和变量类型-PHP培训十期线上班 学号:510251 01月03日作业

PHP基础变量命名和变量类型-PHP培训十期线上班 学号:510251 01月03日作业

赵大叔
赵大叔原创
2020年01月08日 22:40:11662浏览

PHP基础入门

一、编程基础

1、计算机如何表示信息?

计算机中的数据代码都是通过二进制表示。(逢2进1)

2、计算机如何区分数据和代码?

任何需要执行的程序(代码), 都必须事先保存到计算机的内存中。
内存: 理解为宾馆的客房,客房有客人, 和房号, 客人就是数据, 房号就是地址编号(变量名)
计算机将信息进行分段存储, 分为二部分: 代码段, 数据段, 将数据和代码分别存入
在访问的时候, 由操作系统提供的保护机制, 防止越界访问(电脑蓝屏)

3、数据与代码在程序中如何体现?

程序中的数据和代码。
数据: 变量表示, 放在数据段
代码: 函数表示, 放在代码段

  1. //数据: 变量表示, 放在数据段
  2. $site = 'php.cn';
  3. //代码: 函数表示, 放在代码段
  4. function get_site($webSite)
  5. {
  6. return $webSite . '欢迎您';
  7. }
  8. // 调用函数, 指令就是一条一条的进入到cpu
  9. echo get_site($site);

代码解析:

二、PHP基础

1、php运行原理

  • PHP: 超文本预处理语言
  • PHP: 是一种可以嵌入到HTML文档中的服务器端脚本语言
  • PHP也是使用标签嵌入到HTML文档中,和css/js是一样的
  • <?php: 起始标签
  • ?>: 结束标签
  • html文档中一旦嵌入到php代码,那必须将扩展名由.html更新为.php
  • 浏览器并不能直接解析HTML文档中的php代码
  • 如果要解析html中的php代码,需要在web服务器中安装php解释器(php.exe)

2、echo 指令

  • echo: 是php指令,不是函数,可以指定的内容,输出到默认的终端上显示,通常就是浏览器的窗口
  • echo: 输出的内容可以是纯文本, 纯文本中间是可以嵌入html代码,也可以打印一个或多个变量
  • echo: 无返回值
  • 与echo 功能类似的还是一个print,也是指令,不是函数,但有返回值
  • print只支持一个参数
  • echo , print 不是函数, 可以用圆括号, 也可不用
    echo ('abc');

3、PHP语法

  • php使用的是一对<?php ... ?>标签嵌入到html代码中
  • php的结束标记?>, 是可以省略的, 但是并不是任何时候都可以省掉的
  • 当只有php代码的时候, 推荐不要写结束标记?>
  • 当php与html混编的时候, 就不能省略,必须写上结束标记

  • 纯php代码

  1. <?php
  2. echo 'php.cn';
  • html 与 php 的混编
  1. <body>
  2. <p>Hello</p>
  3. <?php
  4. echo '<p>php.cn</p>';
  5. ?>
  6. <h2>php中文网</h2>

重要提示:

  • 无论是纯php还是和html混编, 只要存在php代码,文件扩展名就必须是.php
  • 只要是扩展名为.php的文件,就必须在服务器的环境下远行,本地访问无效

注释

  • 注释的作用: 起到代码功能描述, 辅助阅读,方便维护
  • 注释会被php解释器忽略掉, 并且不会出现在生成的html代码中
  • 注释也有二种:
    • 单行: #, //
    • 单行或多行: /* 一行或多行的注释文本 */

三、PHP变量

1、变量的作用

  • 程序中总会有一些数据, 需要反复使用, 将它们临时保存到一个变量中
  • 变量实现了数据的复用 (函数实现了代码的复用)
  • 与其它语言不同之处, php变量使用前不要声明——php没有变量声明语句,直接赋值
  • 所谓变量声明, 可以简单的理解为:向内存申请一块空间,用来存储数据, 变量名就是内存地址的编号
  • 赋值:第一次要初始化, 第二次叫更新/修改
    1. $a = 100;

标识符:命名规范:,只允许使用字母,数字和下划线,且不能以数字开头

PHP变量三要素

  • php的变量名与普通的标识符是不一样, 必须要用$开头
  • 必须满足php标识符的命名规范字符串, 数字或下划线组成,并且不能以数字开始
  • 变量名严格区分大小写(PHP函数不区分大小写)$username, $userName
    变量$9a非法,不能以数字开始

  • 除了用户自定义变量, 系统为了方便用户, 还预定义一些变量

  • 预定义变量通常可以反映程序的状态,例如服务器变量, 请求变量, 不受作用域限制
  1. //预定义变量
  2. echo '脚本名称: ' . $_SERVER['SCRIPT_NAME']. '<br>';
  3. echo '浏览器: ' . $_SERVER['HTTP_USER_AGENT']. '<br>';
  4. echo '服务器: ' . $_SERVER['SERVER_SOFTWARE']. '<br>';
  5. echo 'GET请求参数: ' . $_GET['id'];
  6. echo '<hr>';
  7. $table;
  8. if (is_null($table)) {
  9. echo '$table 的值 null';
  10. }

2、变量的类型:(任何一个变量一定是属于某种数据类型)

  • php是弱类型语言, 变量的类型, 完成由它的值来确定
  • 变量值的类型, 根据存储方式, 分为三类: 原始类型, 复合类型, 特殊类型

    为什么变量数据有类型

    (1、)操作的要求
  • 只有先明确了数据的类型, 才能定允许的操作
  • 例如, 数值允许进行算术运算, 字符串不能进行算术运算
    100 + 30 = 130; //有意义
    abc - qer //无意义
(2、)存储的要求
  • 只有先明确了数据类型, 才能正确的分配内存空间来保存它
  • 很明显, 数值,字符中, 布尔值,它们占用的空间肯定不一样的

基本类型

  • 数值: 100, 3.14, -9.8
  • 字符串: 'admin', "php.cn", 需要用单引号或双引号做为定界符进行封装。单引号不解析变量;双绰号解析变量
  1. <?php
  2. //双引号字符串中的变量
  3. $name = '朱老师';
  4. //单引号字符串中的变量不会被解析
  5. echo '我是:$name'. '<br>';
  6. //双引号字符串中的变量会被解析
  7. echo "我是:$name". '<br>';
  8. //{}定界符
  9. echo "我是:${name}abc". '<br>';
  10. //双引号中特殊字符会被解析
  11. /*\t-制表符,四个空格
  12. \" \" 转义
  13. */
  14. echo "This\t 'is' a\t \"demo\"";
  15. //大段字符串的输出,<<<Heredoc Heredoc; 功能相当于双引号,用于代码中有大量双引号时
  16. //"<a href=\"www.php.cn\" id=\"abc\">xxxx</a>"
  17. echo <<<DEREDOC
  18. <h3 style="color: red">"PHP\t中文网"{$name}</h3>
  19. HEREDOC;
  20. echo <<< "HELLO"
  21. <h3 style="color: green">"PHP\t中文网"{$name}</h3>
  22. HELLO;
  23. echo '<hr>';
  24. // nowdoc: 功能与单引号创建的字符串类似
  25. echo <<< 'NOWDOC'
  26. <h3 style="color: green">"PHP\t中文网"{$name} 'php真香'</h3>
  27. NOWDOC;
  • 布尔型: 只有真,假二个值true | false,通常用在逻辑判断中

取值范围:
每种数据类型的取值范围不一样
存储方式:

  • 栈: 定长的存储单元, 整数4-8个字节, 字符串的入口地址放进去
  • 堆: 不定长的存储单元, 数组, 对象,字符串本身

复合类型

类型说明:

  • 一个变量名对应一个值: 单值类型/标量类型
    $name = 'peter zhu'; $gender = 'male';
  • 一个变量名与多个值对应: 多值类型/复合类型: 数组/对象

将变量输出的方式:

  • echo :回显,无返回值
  • print :有返回值
  • print_r
  • var_export():可以生成变量的php源代码的字符串表示
  • var_dump:打印出变量详细信息,支持一次查询多个
  1. <?php
  2. $name = 'perter zhu';
  3. $age = 30;
  4. $isMarried = true;
  5. //单值读取
  6. //echo 回显,无返回值
  7. echo '年龄:' .$age . '<br>';
  8. echo $name .'年龄:' .$age . '<br>';
  9. echo $name ,'年龄:' ,$age , '<br>';
  10. echo '姓名:'.$name.'<br>';
  11. //[]是数组
  12. echo '姓名的第一个字母:' .$name[0].'<br>';
  13. //推荐{}
  14. echo '姓名的第一个字母:' .$name{0}.'<br>';
  15. print('年龄:' .$age . '<br>');
  16. //print 有返回值
  17. echo print('年龄:' .$age . '<br>');
  18. echo '<hr>';
  19. // 第二个参数true, 不是输出, 而是返回return
  20. echo print_r($name, true);
  21. echo '<hr>';
  22. // 复合数据, 数组
  23. $data = range(1,20,2);
  24. // 数组
  25. $result = print_r($data, true);
  26. // 字符串
  27. //echo gettype($result);
  28. //print_r($result);
  29. echo '<pre>' . $result . '</pre>';
  30. echo '<hr>';
  31. echo $name . '<br>';
  32. // var_export(): 可以生成变量的php源代码的字符串表示
  33. var_export($name);
  34. echo '<pre>' . var_export($data, true) . '</pre>';
  35. //打印出变量详细信息,支持一次查询多个
  36. var_dump($name, $age, $isMarried);

  • 复合类型:可以理解来原始类型的PLUS版, 通常是由一个或多个原始类型的值组成
  • 复合类型有二种类型: 数组对象

  • 数组

  • 数组中的元素必须使用特殊的语法进行访问:变量名+键名,$arr[2],$user['id']
  • 如果键名是数值,称为:索引数组, 如果键名是连续的正整数, 可以省略键名
  • 如果键名是字符串, 称为关联数组

  • 对象

  • 对象是由new指令,调用一个称为构造函数的一个特殊函数创建,或者实例化一个来创建
  • 对象的成员称之为属性方法,使用变量名+成员指向符
  • $obj->table, 或者$obj->getEmail()

特殊类型

  • 所谓特殊,是指它的值比较特殊, 通常不会参与到运算中, 或者运算结果无意义
  • 特殊类型有二种: null, resourece资源类型
  • null: 称为空类型, 当一个变量没有被初始化的时候,默认就是null
  • resourece资源类型, 例如一个文件, 一张图片, 一个数据库的连接

类型转换

  • 查询: gettype($data)
  • 设置: settype($data, 'string'), 这是永久性的
  • 强制: intval($data), strval($data), 这种转换是临时性,原始类型并不改变
  • 判断: is_int(), is_string(), is_array(), is_object(),is_null()
  • 自动: 当操作符二边的类型不一致的时候, 会触发自动转换机制
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议