PHP

基础语法规范:

1 <?php 开头 ?>结尾

2 php可以单独存在也可以和html等结合使用

3后缀名一般以.php结尾 php4,php5,php6,php7,phtml.

4 php的配置文件一般为php.ini

开发PHP的环境准备

1.phpstudy 8 版本,php的版本可以随意调整,代码是放在WEB服务器的根目录(document-root),默认首页一般是index.php/index.htm,php的扩展一般为XXX.dll()动态链接库文件。php_mysql.dll 是php的mysql扩展。

2.安装编辑工具:sublime text3 ,notepad++,vs code,phpstorm

sublime 安装之后需要配置编译环境。

echo 打印

phpinfo();php函数负责显示当前环境设置

定义变量:$变量名

以$符号开头 后跟变量名

变量名必须是以字母或者下划线开始

变量名中只能有字母,数字以及下划线,不能有空格,区分大小写。

如何判断数据类型:var_dump()

注释:

//单行注释

/* */多行注释

sublime 中添加注释:ctrl+shift+/ or ctrl+/

php打印方式:

echo/echo() 输出一个或者多个字符串,没有返回值。

print/print() 只能输出一个字符串,返回值是1。

echo的打印速度比print快,echo打印出来的字符串中可以有HTML代码。

php的数据类型

string 字符串 " " or ' ' 。

int 整数,是[0-9]之间的数字组合,整数里没有逗号和空格,也没小数;有正负之分,格式: 十进制,十六进制(0x开头[0-f]),八进制(0 开头[0-7])

float 带小数的数字或者指数形式3.1415 or 2.4e4 or 5e-10 or 5*10^-10

bool true和false

array 数组$array=array("icq",123,true);

null 表示变量没有值,可以使用null去清空数据。

$test="icq";$test=null;

object 对象,必须先声明,使用class关键词去声明对象,对象中可有属性,方式。如果要是用这个类,需要new,然后再去使用其中的属性或方式。

php常量

变量:用来存储信息的空间大小 $var

常量:定义之后不可更改,标识符,并且给其赋值,常量是全局变量,在整个页面中均可以使用,常量一般有英文字母,下划线,数字组成,开头不是数字和$

使用define(常量的key,常量的value)定义。define(number,2)

true/false:大小写问题,true->大小写不敏感,默认是true

define(str,"icq");

echo STR;//不能打印icq

define(str,"icq",true);

echo STR;//可以打印icq

条件判断:

if(条件){条件为真时执行的代码;}

if(条件){条件成立时执行的代码;}else{条件不成立时执行的代码}

if(条件){}else if{}elseif{}else{}

switch(){

case 1:

break;

case 2:

break;

default:

break;

}

for循环

for(;;){}

foreach()遍历数组

<?php

$array=array("one","two","three","four","five");

foreach($array as $value){

echo $value."\n\n";

}

?>

键值对型

<?php

$array=array("one"=>1,"two"=>2,"three"=>3,"four"=>true,"five"=>null);

foreach ($array as $key => $value) {

echo $key." is ".$value."\n";

}

?>

while循环

do while 循环

<?php

$i=1;

/*while ($i<=10){

echo "Number is:".$i."\n";

$i++;

}*/

do {

echo "Number is ".$i."\n";

$i++;

}

while($i<10)

?>

数组:在单个变量中存储多种类型的值,类型:数值型数组,关联型数组=键值对型数组,多维数组。

print_r();打印数组。

$array=array("1",123,1.24,true);

$array=array("k1"=>value1,"k2"=value2);

$array=array(array(1,2,3),array(3,4,5),array(6,7,8));

数字型数组的下标是从0开始,长度使用count()函数计算,遍历数组使用for/foreach();

关联型数组的下标是键,k1,k2,遍历数组使用for/foreach

数组的排序:

sort()升序

rsort()降序

asort()针对关联型数组的值,升序

ksort()针对关联型数组的键,升序

arsort()针对关联型数组的值,降序

krsort()针对关联型数组的键,降序

超级全局变量

$GLOBALS //包含全部全局变量的全局组合数组

$_SERVER //包含请求头中信息,用户的ip,用户UA,头信息。

$_REQUEST //包含用户提交的所有数据(POST/GET/COOKIE等)

$_POST //包含用户POST方式发过来的数据。

$_GET //包含用户GET方式发过来的数据。

$_FILES //包含用户发送过来的文件对应的数据

$_ENV //包含服务端环境变量的数据

$_COOKIE //包含COOKIE中的数据

$_SESSION //包含了session中的数据

cookie和session的比较;

1 cookie是存放在用户的浏览器中,是服务端通过返回包中set-cookie来设置,cookie表示用户的浏览器和服务器之间的会话状态,登录成功之后方可获取cookie数据,该数据一般情况下是具有时效性的,失效之后需要用户重新去登录。有了cookie数据之后用户的每次请求都会带上cookie,服务器端会验证该cookie的合法性和时效性,cookie的发送需要遵循浏览器的同源策略;

2session

有意义的常量(预定常量)

__LINE__ 行号

__FILE__ 当前路径的文件名

__DIR__当前文件的路径

__FUNCTION__当前定义的函数名

__CLASS__当前类名

PHP函数:有参 无参

调用函数时,函数名(),注意如果需要给参数,则需要在()中输入参数,个数要满足其要求

需要在函数中有返回值,需要使用return

PHP面向对象

C面向过程,C++ C# Java php python 等面向对象。

对象:对于某些事物的一种描述,代表整体上的一种概念,对现实世界的一种抽象,具有行为形态表示三种特性。

面向对象中常用的概念:

类:对于某些事物的一种抽象,它包含事物形态,行为等

对象:是类的实例,人类(亚洲人对象) 狗类(哈士奇)

成员变量:对象的属性特征,哈士奇:外形像狼

成员函数:对象的某种行为,哈士奇:拆家。

构造函数:主要用来创建对象时初始化对象,为成员变量赋初始值.也就意味着在new对象时用到该函数,该函数需要定义在类中:__construct(参数)

析构函数:

类的定义:

class className{

定义类的变量和函数

}

创建对象:new 对象,类的实例化,使用new

调用成员方法: ->

this 表示当前类,类中有变量和函数,要使用这些变量和函数,$this->变量名,$this->函数名.

表单处理:

服务器接收用户发过来的数据的方式:

$_GET 接受用户以GET方式发过来的数据

$_POST 接受用户以POST方式发过来的数据

$_COOKIE 接收用户的cookie

$_REQUEST 接收用户发过来的数据get或post

htmlspecialchars()实体化编码;结果不会被浏览器解析.

2019.9.27PHP基础的更多相关文章

  1. Cenots7下安装运行.NET Core、MicroSoft SQL Server 2019 preview 的基础实践

    一:概要 适应人群:.Net初学者.想了解.Net Core在Linux系统中的运行环境搭建者.初次且想在linux上应用.Net Core开发应用程序者: 基础技能:了解.NET基础开发技能者.有一 ...

  2. 2019.9.19HTML基础

    html:超文本标记语言,不是编程语言,是标签语言,显示数据. 有双标签和单标签 双标签:有开始有结束,<body></body> 单标签:只有一个.<img src=# ...

  3. 2019寒假算法基础集训营1 - B 小a与"204"

    题目: 小a非常喜欢这个数字,因为. 现在他有一个长度为的序列,其中只含有这三种数字 设为序列中第个数,你需要重新排列这个数列,使得最大(公式的含义是:每个数与前一个数差的平方的和) 注意:我们默认 ...

  4. [2019BUAA软件工程]结对编程感想

    结对编程感想 写在前面   本博客为笔者在完成软件工程结对编程任务后对于编程过程.最终得分的一些感想与经验分享.此外笔者还对于本课程的结对编程部分提出了一些建议. Tips Link 作业要求博客 2 ...

  5. [BUAA软工]第二次博客作业---结对编程

    [BUAA软工]结对作业 项目 内容 这个作业属于哪个课程 北航软工 这个作业的要求在哪里 2019年软件工程基础-结对项目作业 我在这个课程的目标是 学习如何以团队的形式开发软件,提升个人软件开发能 ...

  6. CV_Learn

    CV学习进度条记录,也是SRTP的进度记录. 阶段一(2019.4-2019.5): 1.opencv简单操作学习.(实现了一些基础操作,从颜色通道到边缘轮廓,2019.4.22完成) 2.linux ...

  7. b站编程课程资源汇总

    b站编程课程资源汇总 一.总结 一句话总结: b站的编程资源很多,而且很良心 二.编程课程资源汇总 b站看到的,分享给大家 https://www.bilibili.com/video/av50680 ...

  8. IT知识圈视频学习资源整理贴

    原文地址 热门课程 1.2019 尚学堂大数据全套视频教程(视频.源码.课件) 2.IDEA破解补丁(支持最新2019.2) 3.2019年 MySQL DBA 6期视频教程 4.微信小程序实战开发特 ...

  9. “全栈2019”113篇Java基础学习资料及总结

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

随机推荐

  1. Selenium 2自动化测试实战28(断言方法)

    一.断言方法 执行用例的过程中,最终用例是否执行通过,是通过判断测试得到的实例结果与预期结果是否相等决定的.unittest框架的TestCase类提供下面这些方法用于测试结果的判断. -assert ...

  2. spring boot系列(二)spring boot web开发

    json 接口开发 在以前的spring 开发的时候需要我们提供json接口的时候需要做如下配置: 1 添加jackjson等jar包 2 配置spring controller扫描 3 对接的方法添 ...

  3. 如何从项目中移除CocoaPods

    一.项目Show in Finder: 删除本地文件(Podfile.Podfile.lock.Pods文件夹) 删除本地生成的xcworkspace文件 打开项目,在Frameworks文件夹下,删 ...

  4. java:redis(redis安装配置,redis的伪集群配置)

    1.redis安装配置: .安装gcc : yum install gcc-c++ .使用FTP工具FileZilla上传redis安装包到linux根目录下(当前步骤可以替换为:在root目录下执行 ...

  5. JAVA文件上传 ServletFileUpLoad 实例

    1.  jsp <%@ page language="java" contentType="text/html" pageEncoding="u ...

  6. SQL优化手段

    一.建立索引 要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引(order by desc会非常影响效率). 二.避免在建立索引的字段进行计算操作. 三.使用预编 ...

  7. @ComponentScan 注解

    在配置类上添加 @ComponentScan 注解.该注解默认会扫描该类所在的包下所有的配置类,相当于xml的 <context:component-scan>. @ComponentSc ...

  8. 【Qt开发】关于Qt应用程序中的堆栈、静态存储区的使用错误

    [Qt开发]关于Qt应用程序中的堆栈.静态存储区的使用错误 标签:[Qt开发] 最近终于又碰到了这个问题,想在main函数中定义一个局部大的数组,结果运行就报错,尼玛!刚开始真的不知道到发生了什么,后 ...

  9. C学习笔记-指针

    指针的概念 指针也是一个变量,指针变量的值是另一个变量的地址 换句话说就是,指针存放的是一个内存地址,该地址指向另一块内存空间 指针变量的定义 指向一个变量的变量 int *p = NULL; p = ...

  10. python random 的用法

    python random的里面的方法其实是Random实例化的对象. 里面几个常用的几个方import random print( random.randint(1,10) ) # 产生 1 到 1 ...