变量

  • 1.变量声明规则
    • 1.必须以”$”为变量名前缀
    • 2.变量名必须是一个合法的标识符: 英文字母 a-zA-Z ,数字 0-9 ,下划线 _
    • 3.且禁止数字开头,中间不能有空格
    • 4.预定义的: 保留字, 关键字,class, public 不能用
    • 5.严格区分大小写,小写name和大写NAME,它们是2个不同的变量
  1. // 合法 $name, $num1, $_id
  2. // 非法 $user@name, $123abc, $my-email, $a b = 'php中文网';
  • 2.变量命名规则

    • 1.蛇形 下划线命名法 $app_name = ‘php基础’;
    • 2.小驼峰命名法,第一个单词小写,后面的单词,首字母大写 $appName = ‘php基础’;
    • 3.大驼峰命名法,所有的单词,首字母大写 $AppNameIs = ‘php基础’;
  • 3.可变变量

    1. $url = 'site';
    2. $site = 'php中文网';
    3. // $$url: 可变变量,变量标识符来自另外一个变量
    4. echo $$url; // 返回 php中文网
  • 4.预定义变量

    1. // 超全局变量: 数组,任何地方都可以访问,不受作用域限制
    2. // $GLOBALS: 引用全局作用域中可用的全部变量
    3. // $_SERVER: 服务器和执行环境信息
    4. // $_GET :通过 URL 参数(又叫 query string)传递给当前脚本的变量的数组
    5. // $_POST:当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本
    6. // $_FILES:通过 HTTP POST 方式上传到当前脚本的项目的数组
    7. // $_COOKIE:通过 HTTP Cookies 方式传递给当前脚本的变量的数组
    8. // $_SESSION:当前脚本可用 SESSION 变量的数组
    9. // $_REQUEST: 默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组
    10. // $_ENV: 通过环境方式传递给当前脚本的变量的数组
    11. $email = 'admin@php.cn';
    12. echo $GLOBALS['email']; // 返回 admin@php.cn
    13. // 服务器和执行环境信息
    14. var_dump($_SERVER);
    15. echo 'IP: '. $_SERVER['REMOTE_ADDR']. '<br>';
    16. echo '脚本绝对路径 = '. $_SERVER['SCRIPT_FILENAME']. '<br>';
    17. echo '脚本相对路径 = '. $_SERVER['SCRIPT_NAME']. '<br>';
    18. // id=1&name=admin 查询字符串,给GET请求用
    19. echo '查询字符串 : '. $_SERVER['QUERY_STRING']. '<br>';

常量

  • 1.英文字母(a-zA-Z)、数字(0-9)、下划线(_)
  • 2.是固定的值,一旦创建不可更新,不可删除
  • 3.常量推荐全部大写,多个单词之间用下划线连接
  • 4.常量不是变量,前面不要加” $ “
  1. // 1.函数
  2. define('NATION', '中国');
  3. // 2. 关键字
  4. const GENDER = '男';
  5. // 编译阶段就是静态分析,主要针对现在能看到的,或者能确定下值的东西
  6. // const 运行在编译阶段 一定要有值 在全局中用
  7. // define()在运行阶段才创建常量 是一个动态的概念 可以用在 if() function() 中

数据类型

  • 1.基本类型
    • 1.布尔类型 true, false
    • 2.字符串 必须要使用”单引号”或”双引号”做为定界符
    • 3.数值(整数,浮点数)
  1. $boolean = true;
  2. // gettype() 获取变量的类型
  3. echo gettype($boolean); //返回 boolean
  4. // 字符串
  5. $username = 'admin';
  6. $email = "admin@php.cn";
  7. // 想要在字符串中输出 "单引号"或"双引号"
  8. // 1. 将字符串内部的定界符进行转义,转为失去定界作用的普通字符
  9. echo 'Hello \'欧阳老师\'';
  10. // 2. 内部使用与定界符不同的引号类型
  11. echo 'Hello "欧阳老师"';
  • 2.复合类型

    • 1.数组

      • 索引数组
        $stu = [1, '小明', 'php', 88];
      • 关联数组
        $stu = ['id' => 1, 'name' => '小明', 'course' => 'php', 'score' => 88];
    • 2.对象

      1. class PHP{
      2. }
      3. $php = new PHP;
      4. var_dump($php); // 返回
  • 3.特殊类型
    • null
      $a = null; var_dump($a);

类型转换

  • 1.临时转换

    1. $id = '1';
    2. echo gettype($id),'<br>'; //返回 string
    3. $id1 = (int)$id;
    4. echo gettype($id1),'<br>'; // 返回 integer
    5. echo gettype($id),'<br>'; // 返回 string
    6. // (int)
    7. // (string)
    8. // (float) (array) (object)
  • 2.自动转换

  1. // 每一种操作符,它要求的操作数类型是固定的,如果不满足就自动转换
  2. // "+"要求参与计算的数据都是数值类型,如果不是,就是会触发自动转换
  3. echo 123 + '456' ,'<br>';
  4. // 等价于
  5. echo 123 + (int)'456' ,'<br>';
  6. // ".", 希望二边都是字符串,如果不是就转换
  7. echo 'php' . 123 . '<br>';
  8. // 等价于
  9. echo 'php' . (string)123 . '<br>';
  10. // 布尔转换
  11. // $email 未定义,NULL
  12. var_dump($email); // 返回 null
  13. var_dump((bool)''); // 返回 false
  14. var_dump((bool)null); // 返回 false
  15. var_dump((bool)0); // 返回 false
  • 3.永久转换: 只针对变量
  1. $price = 666;
  2. echo gettype($price), '<br>'; // 返回 integer
  3. // 永久转换
  4. settype($price, 'string');
  5. echo gettype($price), '<br>'; // 返回 string

值传递 与 引用赋值

  1. // 默认是"值传递"
  2. $price1 = 888;
  3. $price2 = $price1;
  4. $price1 = 666;
  5. echo $price1 ,'<br>'; //返回 666
  6. echo $price2; //返回 888
  1. // 引用赋值其实就是给原始变量起一个别名,并未创建新变量
  2. $price1 = 888;
  3. $price2 = &$price1;
  4. $price1 = 666;
  5. echo $price1 ,'<br>'; //返回 666
  6. echo $price2; //返回 666

更多相关文章

  1. PHP如何对所给的IP数进行排序
  2. PHP如何判断两个数中哪个数最接近值100
  3. 如何通过PHP将“if”添加到给定字符串的前面
  4. PHP数组学习之返回给定两数间的全部公因数和最大公因数
  5. if语句 三元 和 函数练习
  6. 八大数据类型
  7. PHP基础:变量和数据类型
  8. PHP环境搭建与初识PHP
  9. PHP数据类型及开发环境部署

随机推荐

  1. 几道 BAT 算法面试中经常问的「字符串」
  2. 11 月编程排行榜:Python “打败”Java 成
  3. 【代码实战】华为应用市场专家在线直播Ap
  4. 大新闻!Python 之父重新出山,加入微软开发
  5. 数据结构与算法: 三十张图弄懂「图的两种
  6. 1.5 万 Star!界面酷炫、简单易用的数据库
  7. centos 磁盘管理详解
  8. f-string 竟然能有 73 个例子,我要学习下
  9. 7 个省时高效的 pytest 特性和插件
  10. Android中JSON解析