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方法接受的数据。
原文地址:https://www.cnblogs.com/hacker-snail/p/13890304.html