• 超详细的PHP入门知识点讲解


    目录

    一、简介

    二、php基本语法

     二、变量和作用域

    三、常量

    四、数据类型

    五、运算符

    六、流程控制

    七、超全局变量


    一、简介

    基础知识:
    需要一定的html和css的语法知识

    基本概念:
    PHP(超文本预处理器)是一种通用开源脚本语言,在服务器上执行。

    PHP文件:

    • PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码
    • PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器
    • PHP 文件的默认文件扩展名是 ".php"

    二、php基本语法

    1. #单行注释1
    2. // 单行注释2
    3. /**
    4. 多行注释3
    5. */
    6. echo "

      hello world

      "
      ;
    7. $name="coleak";
    8. $mes="hello";
    9. echo $mes." ".$name;
    10. echo "
      "
      ;
    11. echo "my name is $name";
    12. echo "
      "
      ;
    13. echo 'my name is $name';
    14. echo "
      "
      ;
    15. var_dump($name);
    16. // 调试函数,没有返回值
    17. ?>

     二、变量和作用域

    1. function fun()
    2. {
    3. $y=0;//局部变量
    4. echo "y的值为: $y";
    5. echo "
      "
      ;
    6. echo "x的值为: $x";
    7. }
    8. $x=1;//全局变量
    9. fun();
    10. echo "
      "
      ;
    11. echo "y:$y";
    12. echo "
      "
      ;
    13. echo "x:$x";
    14. ?>

     分析:此时函数内不能访问全局变量,需要使用globar $x;  函数外不能访问局部变量。

    1. function fun()
    2. {
    3. static $y=0;//静态变量
    4. echo "y的值为: $y";
    5. echo "
      "
      ;
    6. $y++;
    7. }
    8. fun();
    9. fun();
    10. fun();
    11. fun();
    12. ?>

    三、常量

    1. // 被替代的写法
    2. define("mess","hello");
    3. echo mess;
    4. // 新写法
    5. const name ='coleak';
    6. echo name;
    7. function fun()
    8. {
    9. echo name;
    10. }
    11. fun();
    12. ?>

    四、数据类型

    • 布尔类型

    1. $a=true;
    2. $b=False;
    3. if(is_bool($a))
    4. if(is_bool($b))
    5. echo 1;
    6. ?>

     此时输出为1,不区分大小写的弱语言

    • heredoc和nowdoc
    1. $a=true;
    2. $b=False;
    3. if(is_bool($a))
    4. if(is_bool($b))
    5. echo 1;
    6. ?>
    7. $name="coleak";
    8. $message=<<<'EOT'
    9. hello $name
    10. EOT;
    11. echo $message;
    12. ?>

    上面输出为hello coleak,下面输出为hello $name

    • 数组
    1. $a1=array('12',"12",12);
    2. $a2=[1,2,3,4];
    3. $a3=[
    4. "hh"=>6,
    5. 5=>'coleak'
    6. ];
    7. var_dump($a1);
    8. echo "
      "
      ;
    9. var_dump($a2);
    10. echo "
      "
      ;
    11. var_dump($a3);
    12. echo "
      "
      ;
    13. unset($a3['hh']);
    14. var_dump($a3);
    15. ?>

    array(3) { [0]=> string(2) "12" [1]=> string(2) "12" [2]=> int(12) }
    array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) }
    array(2) { ["hh"]=> int(6) [5]=> string(6) "coleak" }
    array(1) { [5]=> string(6) "coleak" }

    • 对象
    1. class person
    2. {
    3. var $count=1;
    4. function func()
    5. {
    6. echo $this->count;
    7. }
    8. }
    9. $per1=new person();
    10. echo $per1->count;//后面的count前面不用加$号
    11. echo "
      "
      ;
    12. $per1->func();
    13. ?>

    此时输出为两个1

    • null
    1. $a=1;
    2. $b=2;
    3. function fun()
    4. {
    5. echo $a+$b;
    6. echo "
      "
      ;
    7. var_dump($a);
    8. echo "
      "
      ;
    9. var_dump($b);
    10. echo "
      "
      ;
    11. }
    12. fun();
    13. var_dump($a);
    14. echo "
      "
      ;
    15. var_dump($b);
    16. echo "
      "
      ;
    17. ?>

    0
    NULL
    NULL
    int(1)
    int(2)

    1. $a=10;
    2. unset($a);
    3. var_dump($a+1);
    4. echo $a+2;
    5. echo "
      "
      ;
    6. var_dump($b+3);
    7. echo $b+4;
    8. ?>

    2

    4

    五、运算符

    • 字符串运算符
    1. $a="hello";
    2. $b=$a."world";
    3. $a.="world";
    4. echo $b,"
      "
      ;
    5. echo $a;
    6. ?>

    helloworld
    helloworld

    • 比较运算符

     注意:当字符串遇到数字内容的比较时,如果不是使用绝对比较符,则会转化为对应的数字进行比较。

    • 逻辑运算符

    •  数组运算符

    1. $a=[
    2. "a"=>"aa",
    3. "b"=>"bb"
    4. ];
    5. $b=[
    6. "a"=>"aaa",
    7. "c"=>"cc"
    8. ];
    9. $c=$a+$b;
    10. var_dump($c);
    11. ?>

    array(3) { ["a"]=> string(2) "aa" ["b"]=> string(2) "bb" ["c"]=> string(2) "cc" }

    由此可以看出+时并没有覆盖重复的键。

    • 三元操作符
    1. // 写法一(老旧)
    2. $a="coleak";
    3. $name=$a?$a:"nobody";
    4. echo $name;
    5. // 新写法
    6. $name2=$a?:'nobody';
    7. echo "
      "
      ,$name2;
    8. ?>

    coleak
    coleak

    六、流程控制

    1. $x=[1,2,3,4,5];
    2. foreach ($x as $val)
    3. {
    4. echo $val."
      "
      ;
    5. }
    6. ?>

    1

    2

    3

    4

    5

    七、超全局变量

    1. $a=10;
    2. $b=20;
    3. function add()
    4. {
    5. $GLOBALS['z']=$GLOBALS["a"]+$GLOBALS['b'];
    6. }
    7. add();
    8. echo $z;
    9. ?>

     30

    •  POST方式
    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. head>
    9. <body>
    10. <form method="post" action="index.php">
    11. <p>my_addp>
    12. <input type="text" name="add1">
    13. <br>
    14. <input type="text" name="add2">
    15. <br>
    16. <input type="submit" value="提交">
    17. form>
    18. body>
    19. html>
    1. $add1=$_REQUEST["add1"];//也可以用$_POST
    2. $add2=$_REQUEST["add2"];//也可以用$_POST
    3. $add=$add1+$add2;
    4. echo $add;
    5. ?>

    333 

    • GET方式(不安全) 
    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. head>
    9. <body>
    10. <form method="get" action="index.php">
    11. <p>Name:<input type="text" name="fname">p>
    12. <p>Password:<input type="password" name="passw">p>
    13. <p><input type="submit" value="提交">p>
    14. form>
    15. body>
    16. html>
    1. $fname=$_GET["fname"];
    2. $password=$_GET["passw"];
    3. $message=<<
    4. 用户名称 $fname 用户密码 $password
    5. ETO;
    6. echo $message;
    7. ?>

     

  • 相关阅读:
    操作系统原理,文件系统的实现,磁盘上和内存中的内容布局,文件目录的检索过程,目录项分解法
    分治-19寻找峰值,20逆序对
    紧跟热点:教你如何快速掌握ChatGPT
    ant的echo任务
    出详图和工程图(下)-SOLIDWORKS 2024新功能
    ES6 set 数据结构及拓展运算符及map集合
    算法|Day50 单调栈1
    【MYSQL】索引
    解析List接口中的常用的被实现子类重写的方法
    [翻译] NVIDIA HugeCTR,GPU 版本参数服务器 --(10)--- 推理架构
  • 原文地址:https://blog.csdn.net/qq_63701832/article/details/128062940