• php笔记


    代码格式

    PHP标记符< ?php.....?>

    • php代码都要写在标记符内

    与html的混写:标记符外可写html代码

    注意:

    • 每句代码以 ; 结束
    • PHP对所有用户定义的函数、类和关键词(if、else、echo)都对大小写不敏感
      • 如:echo "hello word"ECHO "hello word"EchO "hello word"等价
    • PHP对所有变量都大小写敏感
      • $color$Color$COLOR是三个不同的变量

    输出:

    • echo:不属于函数。输出一个或多个字符串,在网页中输出内容,
      • 如:输出 echo 'helloword'
      • 实现换行 echo "< br/>";
    • var_dump():输出代码内容,结构与类型。该函数作可以窥探所有内容的类型,以及内部信息。该函数是调试、打印、输出、展示类型函数。
      • var_dump($a1);
    • die()输出结果,结束脚本,是exit()另一种形式

    注释

    • // /*....*/#

    常量

    有效的常量名以字符或下划线开头(常量名称前面没有$符号)

    与变量不同,常量贯穿整个脚本是自动全局的

    设置PHP常量

    • 使用define()函数 - 它有三个参数
      • 首个参数定义常量的名称
      • 第二个参数定义常量的值
      • 第三个参数规定对常量名是否大小写不敏感,默认是false
        • 如: <?php define("GREETING","Welcome to beijin")?>
    • 常量命名规则
      • 作用域是全局的,自动全局
      • 常量类似变量,但常量一旦被定义就无法更改或撤销定义
      • 通过define()函数定义
      • 以字符或下划线开头
      • 值只能是标量boolean、integer、float、string这几种类型
      • define()代码运行时才定义常量
      • const()代码运行前就会定义好常量

    变量

    命名变量必须以 $ 开头,如 $a1;

    变量名必须以字母或下划线开头

    赋值、传值、传址

    • 赋值:$a = 360;
    • 传值:$a = 360;$b = $a
      • 改变一个变量的值,另一个变量的值不会改变
    • 传址:$a = 360;$b = &$a
      • 改变一个变量的值,影响另一个变量的值

    表达式

    任何有值的东西

    数据类型

    int型 $a1 = 1;

    float型 $a2 = 1.5

    bool型 $a3 = true;

    字符串型

    • $a4 = 'string123';
    • $a5 = "string123";

    PHP的单引号和双引号

    • 解析字符内容
      • 双引号中的变量会经过编译器解析
      • 单引号中的变量不会被解析
        • <?php $test = "hello";echo "$test";?>输出结果为hello
          <?php $test = "hello";echo '$test'?>输出结果为$test
    • 字符转义
      • 双引号内使用可以转义字符,单引号中的内容不会
        • <?php echo "hello "word" ";?>输出结果为hello "word"
          <?php echo 'hello "word" ';?> 输出结果为hello "word"

    数据类型的转换

    • (int) + 值 将值强制转换为整数
    • (float) + 值 返回值强制转换为浮点值
    • (字符串) + 值 返回值强制转换为字符串
    • (bool) + 值 返回值强制转换为布尔值
    • (数组) + 值 返回值强制转换为数组
    • (对象) + 值 返回值转换为对象

    数组(键+值)

    • $a6 = [1,2,3,4];
    • $a7 = array(1,2,3);
    • 类型
      • 关联数组(手动定义键名)

        • $arr1 = [
          'a' => 1,
          'b' => 2,
          'c' => 3,
      • 索引数组(自动生成键名)

    • 操作
        • $arr1['d'] = 4;
        • unset($arr1['c']);

      • * $arr1['a'] = 6666;
        • echo $arr1['a'];

    对象

    • $a8 = new stdClass;

    • $a9 = null;

    运算符

    赋值 =

    加等 +=

    点号.字符串拼接


    • $a = 1;
      $b = "bbb";
      $a . $b 结果为 1bbb

    点等 .=


    • $a = aaa;
      $a .= "bbb"; 结果为 aaabbb

    等于号 ==

    不等号 <>!=

    绝对等于 === 判断 数值 和 数据类型 是否相同

    绝对不等于 !==

    逻辑与 and&&

    逻辑或 or||

    逻辑非 !

    预定义变量

    语言中不需要人为定义的变量,如 $_GET,$_POST

    流程控制

    条件

    • if、elseif、else
    • switch(...){csae..:..}

    循环

    • for(...;...;...){....}
    • 遍历对象和数组:
      • foreach(数组名 as $key$value){...}
    • while
    • do..while
    • continue

    函数

    定义的函数必须以function开头

    • 如 function name(){
      ...;
      }

    函数的调用

    • 如 name();

    系统函数(内置函数)

    函数中的参数

    • name($a,$b);

    函数的返回值 return 只能返回一个值

    函数一般不直接返回具体信息,而是返回true 或 false

    局部变量和全局变量

    php 中全局变量不能在函数中使用

    • (c语言中是可以的)
      $a1 = 1;
      function name(){
      echo $a1;
      }
      是错误的

    类与对象

    语法类似c语言中的结构体

    定义类 通过class定义

    • 如 class name{
      ...
      }

    • 定义类属性 变量

      •   	如 
          	class name{
          	public $s1 = 0; 
          	public $s2 = 1;
          	}
        
    • 定义类方法 函数

      •   		如
          	class name{
          	public function s1(){
          		echo 's1';
          	}
          	public function s2(){
          		echo 's2';
          	}
          }
        

    定义对象 通过new定义

    • $name = new name(); //根据name类 实例化对象

    • 调用对象属性


      • echo $name->s1;
    • 调用对象方法


      • echo $name->s1();//加个括号表示方法区别于属性

    $this

    • 用来在类的方法的内部调用自己的兄弟
      •   	如 
          class name{
          	public function s1(){
          		$this->s2();	//此处调用
          	}
          	public function s2(){
          		echo 's2';
          	}
          }
        

    常见的魔术方法

    • public function __construct(){ //有两个下划线
      echo 123;
      }
      不需要手动调用,在实例化对象后,会自动执行
    • __construct: 在创建对象时候初始化对象,一般用于对变量赋初值。
    • __destruct: 和构造函数相反,当对象所在函数调用完毕后执行。
    • __toString:当该对象被echo时就会调用该魔术方法
    • __sleep:序列化对象之前就调用此方法(其返回需要一个数组)
    • __wakeup:反序列化恢复对象之前调用该方法
    • __call:当调用对象中不存在的方法会自动调用该方法。
    • __get:在调用私有属性的时候会自动执行
    • __isset()在不可访问的属性上调用isset()或empty()触发
    • __unset()在不可访问的属性上使用unset()时触发

    包含文件

    include("文件名");

    include_once();

    require();

    require_once();

    数据的发送与接收

    注:html 客户端发送数据,php服务器端接收数据

    POST

    • html的表单< form>.....< /form> 必须有 name属性
      如 < form action = "formsave.php" method = "POST">
      < input type = "text" name = "aa"/>
      < /form>

    • 定义 :接收数据的地址 action 和提交表单的方式 method
      如 < form action = "formsave.php" method = "POST">...< /form>

    • 服务器端 使用对应的 $_POST 数组来接收

    GET

    • html的表单< form>.....< /form> 必须有 name属性
      如 < form action = "formsave.php" method = "GET">
      < input type = "text" name = "aa"/>
      < /form>

    • 定义 :接收数据的地址 action 和提交表单的方式 method
      如 < form action = "formsave.php" method = "GET">...< /form>

    • 服务器端 使用对应的 $_GET 数组来接收

    • GET方式中数据可直接在网址中传输
      如:http://127.0.0.1/formsave.php?aa=32&bb=66
      网页会显示 aa=32 bb=66

    php中执行mysql

    连接到数据库

    • $db = new mysqli($host,$user,$pwd,$dbname);

    执行sql

    • $db->query('MySql语句');
      • $db->query('INSERT INTO msg(content,user,intime) VALUES(11,22,33)');

      • $db->query()的返回值,成功返回 true,失败返回 false

      • $db->query('SET NAMES UTF8') 设置连接数据库的编码类型

    网站的BS结构:

    PHP在服务器上执行,执行结果是html,将html发往客户端的浏览器
    alt php-html

    PHP数据接收变量$_GET$_POST$_REQUEST区别

    • $_GET
      预定义的 $_GET变量用于收集来自 method="get" 的表单中的值。
      从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送信息的量也有限制。
      • 注:HTTP GET 方法不适合大型的变量值。它的值是不能超过 2000 个字符的。
    • $_POST 变量
      预定义的$_POST变量用于收集来自 method="post" 的表单中的值。从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。
      • 注:默认情况下,POST 方法的发送信息的量最大值为 8 MB(可通过设置 php.ini 文件中的 post_max_size 进行更改)。
    • $_REQUEST 变量
      预定义的 $_REQUEST 变量包含了 $_GET$_POST$_COOKIE 的内容。
      $_REQUEST 变量可用来收集通过 GET 和 POST 方法发送的表单数据。
      $_REQUEST 变量既可以收集GET方法发送的数据,也可以接受POST方法接受的数据。
  • 相关阅读:
    shell 字符串切分成数组
    RDD关键性能考量之 内存管理
    RDD关键性能考量之 序列化格式
    【转】Linux ln(link) 命令详解
    【转】redis配置认证密码
    【转】MongoDB 知识要点一览
    RDD关键性能考量之 并行度
    使用thumbnailator不按照比例,改变图片的大小
    Linux服务器redhat配置本地yum源
    Oracle表字段的增删改和重命名
  • 原文地址:https://www.cnblogs.com/hacker-snail/p/13890304.html
Copyright © 2020-2023  润新知