
周报05
mac上使用phpstudy+vscode实现前后端分离
允许第三方途径下载设置:
打开左上角安全与隐私、通用、开锁、勾选允许app下载来源的”任何来源”选项(打开终端输入命令sudo spctl --master-disable即可找到该选项)
- 分别在官网下载安装最新适用于mac的版本
- vscode插件下载:Chinese(中文插件)、php debug、phpintelephense
- 用vscode创建文件夹命名为php,右键复制文件夹路径
- 配置phpstudy
4.1安装之后打开wnmp设置一键启动,选中MySql和Apache点确定,启动MySql和Apache无异常情况
4.2在phpstudy软件管理中下载任一版本php - 网站建立:
5.1点击”网站””管理””停止”,暂停自带的localhost网站
5.2将刚才vscode中复制的php文件夹路径作为新建网站根目录
5.3回到phpstudy中将路径复制到根目录中后确认
5.4在vscode的文件夹下新建文件后缀为php写入代码
5.5浏览器输入localhost/新建php文件相对于文件夹路径即可实现在浏览器中运行
php语法学习
- 预定义变量:都是数组
$_GET:获取所有表单以get方式提交的数据
$_POST:post提交的数据都会保存在此
$_REQUEST:get和post提交的都会保存在此
$GLOBALS:php中所有的全局变量
$_SERVER:服务器信息
$_SESSION:session会话数据
$_COOKIE:cookie会话数据
$_ENV:环境信息
$_FILES:用户上传的文件信息
2.可变变量:如果一个变量保存的值恰好是另一个变量的名字,那么可以通过访问一个变量得到另一个变量的值:前多加一个$,类似指针中a=b,b="bb",(*b)='bb'
$a = 'b';
$b = 'bb';
echo '<br/>', $a, '<br/>', $$a, '<br/>', $b;
3.变量传递:值传递、引用传递
3.1值传递:$a,$b并没有关系
$a = 1; //栈区开辟一块空间放a,数据段开辟一段空间放数据1,然后将1所在位置复制给a变量
$b = $a; //栈区开辟一块空间放b,检测到=为赋值运算符,将a中数据取出再放到数据段新开辟的一块空间,后将该位置复制给变量b
3.2引用传递:将原变量所保存的数据地址直接赋给新变量,即原变量前加上'&'即为地址,赋给新变量地址中的数据是保存在原变量对应地址中的数据,原变量中所保存值改变,则对应传给新变量中的值也改变
$a = 10;
$b = &$a;
$a = 5;
echo $a, $b;
- php常量:const/constant是在程序运行当中不可改变的量(数据),一旦定义通常不可改变(用户级别)
4.1php中有两种定义常量方式(5.3之后才有第二种): - 定义常量函数define('常量名',常量值)
- 使用关键字const 常量名=值
注:define和const定义区别在于访问权限、定义常量通常不区分大小写如果需要可参照define函数的第三个参数
//使用函数定义常量define
define('PI', 3.14);
//使用const关键字
const PII = 3;
4.2常量名字命名规则:1.不使用'$',否则会被当成变量2.不能以数字开头,'通常'由字母数字下划线组成(规则比变量松散,可以用特殊字符命名,但是只能通过define实现)3.通常以大写字母命名
//定义特殊常量
define('-_-', 'smile');
4.3常量使用形式:
1.(通常)与变量一样,直接使用常量名字即可访问,但是在定义时必须赋值
2.(针对特殊形式常量)需要使用函数:constant('特殊变量名')
//echo -_-;//错误
echo constant('-_-');
4.4系统常量:系统帮用户定义的常量,用户可直接使用
PHP_VERSION:php版本号
PHP_INT_SIZE:整型大小
PHP_INT_MAX:整型能表示的最大数(允许出现带符号,有负数)
4.5魔术常量:常量名(值会跟着环境变化,但是用户改变不了)
__DIR__:当前脚本所在电脑的绝对路径
__FILE__:同上绝对路径但是包含文件名
__LINE__:当前所属行数
__NAMESPACE__:当前所属命名空间
__CLASS__:当前所属类
__METHOD__:当前所属方法
- 数据类型(php是弱类型语言,变量本身没有数据类型):存储数据本身的数据类型
数据分为三大类,八小类:
1.简单数据类型:整型(4个字节)、浮点型(8字节,小数或整数存不下的部分)、字符串型(引号)、布尔类型
2.复合数据类型:对象类型(object)、数组类型(array一次性存储多个数据)
3.特殊数据类型:资源类型(resource存放资源数据,数据库、文件等)、空类型(NULL不能运算)
5.1类型转换(需要php取得数据转换成目标数据类型时):自动类型转换(效率低)、强制类型转换(数据前括号中写上所需要转换成的类型,unset()可用来转换NULL类型)
5.2类型判断函数:is_数据类型(所需要判断的数据)
5.3获取数据类型函数:gettype(所需要获取类型的数据)
5.4设定数据类型函数:settype(所需要设定类型的数据,'所需要设定成的类型')
注:settype和强制类型转换的区别:前者改变数据本身
6.位运算符:
&:按位与
|:按位或
~:按位非
^:按位异或
<<:按位左移,右补0
>>:按位右移,符号位正补0,负补1
注:1.位运算都是使用补码2.运算结束之后必须转换成原码才是最终显示数据
7. 常用系统函数:
7.1有关输出函数:print()类似于echo输出提供的内容,本质是一种结构(不是函数)返回1,可以不用括号;print_r()不输出数据类型只输出值
7.2有关时间函数:1.time()获取当前时间对应时间戳 2.microtime()获取微妙级别时间 3.strtotime()按照规定格式的字符串转换成时间戳
8. include和include_once区别:前者如果遇到多次则执行多次,后者无论遇到几次都执行一次;require和include区别:报错形式不同