php基础

1.什么是PHP?

PHP(Hypertext Preprocessor)称之为超文本预处理器,它是一种通用的开源语言。在服务器端执行的脚本语言。它的这个语法混合了c语言,Java了语言,还有这个Perl语言的一些特点。它的基础语法的写法与javascript,尤其相似。所以对于我们来讲,这个入手会比其他人要更快一些。

php代码必须写在php标记中,标记外的php代码不会被编译执行
/**
 * 多行注释 
*/
# 单行注释

2.语言特点

1. 只能运行在服务器上的脚本语言,向浏览器返回HTML结果
2. 面向对象语言
3. 开源,免费
4. 学习成本低
5. 弱类型语言(变量没有固定类型,变量的数据类型在赋值时由值的类型决定),没有声明变量的关键字,以$a 表示变量(a),注意PHP不允许只声明变量不给变量赋值。

一、变量

  1. echo :只能输出基础类型的值
  2. var_dump():可以输出任意数据类型的值 (输出内容包含:值、 类型[长度])
  3. print_r():输出数组
echo 10;
var_dump(10)

二、数据类型

基础类型

1、string 字符串
2、integer 整型(整数,不区分正负)
3、double(float) 浮点型(小数)
4、boolean 布尔型

引用类型

6、array 数组
7、object 对象

特殊类型

8、null 空

$a = "php is the bast in the world";
 echo $a;
 echo "<br>";
$b = 10;
 echo $b;
$c = 3.1415926;
 echo $c;
 $d = true;
 echo $d;// true 为 1 、false 为 ""
读取或判断变量的数据类型

1、gettype(var) : 返回数据的变量类型
echo gettype($d);
2、is_type(var) : 判断变量是否为指定数据类型,返回布尔值

 echo is_bool($a);

三、运算符

1、算术运算符: + - * / % ,只进行算术运算,非数值会被强制转化为数值,如果无法转化为 0 参与运算。
2、关系运算符: > < >= <= == != === !==
3、逻辑运算符: and (&&) or(||) ! xor
xor : 异或逻辑:只有当逻辑俩侧一个成立一个不成立时整个逻辑才成立,否则逻辑不成立。
4、赋值运算符: =
5、符合运算符:+= -= *= %= ++ --
6、拼接运算符:. 拼接字符串

 echo 5/2; // 虽然类型上将整数与小数分开,但是PHP仍然有弱类型特征,5/2依然计算为2.5;

四、分支结构

五、循环结构: for、while

六、常量:值不会发生变化的变量。

1.define(name,value);

 define('PI',3.14);//声明了一个常量PI,值为3.14;不允许二次赋值;
 echo PI;

2.const 关键字声明常量

const PI = 3.14;
echo PI;

7.String操作方法

'' 和 "" 都可以表示字符串,"" 可以解析变量,通常将变量用{}包裹。
  $i = 3;$j = 6;
 echo $i."*".$j."=".$i*$j;
 $res = $i*$j;
 echo "{$i}*{$j}={$res}";
 echo "$i and $j 都是odd"
$str = "PHP is the best in the world";

1、strlen($str):读取字符串长度。(中文占据三个字符长度)

echo strlen("你好")

2、substr($str,start,len):截取字符串

echo substr($str,4,11);

3、 strpos($str,sub):判断指定字符串是否包含目标子字符,如果包含返回索引,否则返回false;

 echo strpos($str,'best');

4、4. stripos($str,sub);//不区分大小写

 echo stripos($str,'php');

5、str_replace(who,what,where,count):字符串替换,count是可选参数,记录替换次数;

 $res = str_replace('e','',$str,$n);
 echo "$res <br> $n";

6、explode(item,$str): 以item为参照物切割指定字符串为数值(item不可以是空字符串)

 print_r(explode(' ',str));
 echo "<br>";
 var_dump(explode(' ',$str));

7、strtoupper(str1,str): 字符串字母首字母小写 8、strrev(str): 翻转字符串
9、strstr(a,b):字符串的截取,a字符串 b指定字符 从指定字符开始截取到末尾

echo strstr($str,'i');

8.数组:储存多个数据的容器

1、声明数组

 $arr = ["青","案","是","请"];
 $arr = array(
     "青",
     8=>"案",
     "是",
     "请"
 );
 print_r($arr); 

2、数组类型:
(1)索引数组:索引从零开始递增的整数
(2)关联数组:索引为string
(3)混合数组:索引与关联的组合

$arr = [
   "芋泥波波奶茶",
   "丝袜奶茶",
   "红豆奶茶",
   "拿铁咖啡",
   "卡布奇诺",
   "摩卡咖啡",
   "大红袍",
   "金俊眉"
];

3、操作方法
1、count($arr):读取数组长度

echo count($arr);

2、array_push($arr,value...)

array_push($arr,"西湖龙井");

3、array_pop()

 array_pop($arr);

4、array_unshift($arr,value...)

 array_unshift($arr,"冰红茶");

5、array_shift()

 array_shift($arr);

6、array_splice($arr,index,len,value...)

 array_splice($arr,2,1);

7、array_slice($arr,start,len):截取;

8、in_array(item,$str)

 判断item是否在arr中,如果在返回true,否则返回false;
 echo in_array("芋泥波波奶茶",$arr);

9、implode(char,$arr):数组转字符串

 echo implode(",",$arr);

10、array_merge($arr,arr...): 数组拼接

 $res = array_merge($arr,[1,2,3,3,4]);
 print_r($res)

11、 array_reverse($arr):反转数组元素

 $res = array_reverse($arr);
 print_r($res);

12、sort(); 升序排序 : 数字按大小排序 , 字母是首字母按a-z排序
13、rsort();降序排序 : 数字按小到大排序,字母是首字母按z-a排序
14、ksort();键名对数组排序,为数组值保留原来的键 : ksort(array,sorttype)
15、krsort();按照键名进行降序排序:
16、asort();按照键值对关联数组进行升序排序:
17、arsort();对关联数组按照键值进行降序排序:

9、ajax

ajax : 异步的javascript 和 xml
不是新语言,只是前端和后端交换数据的技术
特点: 异步请求,局部更新。
异步和同步
同步:按顺序依次执行,在上一次执行完成前,后面的任务都是暂时挂起的状态。
异步:不按顺序执行,不会对后面的任务执行造成阻塞。
例子:同步(打电话) 、异步(发短信)

GET:通常用于向服务器请求数据
POST:通常用于服务器提交数据

核心:XMLHttpRequest 请求对象
GET请求的流程

//1. 创建请求对象
var xhr = new XMLHttpRequest;
// console.log(xhr);
    // 2. 准备请求
    // open(method,url,async);
    //method: string类型,设置请求方式
    //url :string类型,设置请求地址
    //async:boolean类型,设置是否异步发送请求,true异步,false同步。
    //如果GET请求需要向服务器发送数据,必须将数据以查询参数的格式拼接在url后面。

    xhr.open('get','./response.php?type=3',true);
    // 3. 发送请求
    //send(): get请求下,send()方法无参数
    xhr.send();
    // 4. 监听请求
    // onreadystatechange 事件监听请求
    xhr.onreadystatechange = function(){
        //每当请求状态改变时触发
        //(1)readyState; 请求状态
        //0 :请求对象已初始化,尚未准备请求。
        //1 :请求已准备,但尚未发送请求。
        //2 :请求已发送,但服务器尚未接收。
        //3 :服务器以接收请求,尚未处理
        //4 :服务器已处理请求,并返回结果

        //(2)status:服务器响应码(HTTP状态码);
        // 200 :请求成功,可以正常接收服务器相应。
        // 304 :请求成功
        // 404 :请求失败,页面不存在
        // 403 :请求失败,服务器接收到了请求但是拒绝处理。
        // 500 :请求失败,服务器异常

        if(xhr.readyState == 4 && xhr.status == 200){
            // 5. 接收服务器返回结果
            // responseText
            console.log(xhr.responseText);
            var res  = JSON.parse(xhr.responseText);
            console.log(res);
        }
        
    }

//POST请求流程
//如果POST请求不携带数据,那么请求流程于GET完全相同,唯一区别就是open()方法的第一参数不同。
    1.创建请求对象
    var xhr = new XMLHttpRequest;
    //2.准备请求
    xhr.open('post','./response.php',true);
    //3. 建立请求头(数据需要包装请求头中)
    //设置数据格式
    //表单数据:application/x-www-form-urleneoded;
    xhr.setRequestHeader('Context-type','application/x-www-form-urlencoded');
    //发送请求并携带数据
    //发送表单数据时,数据需要以查询参数形式的字符串作为 send() 方法的参数。
    xhr.send('type=3');
    //监听请求
    xhr.onreadystatechange = function(){
        if(xhr.readyState==4 && xhr.status==200){
            console.log(xhr.responseText);
            // var res = JSON.parse(xhr.responseText);
            // console.log(res);
        }
    }

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容

  • php基础个人总结 标签: php 以下是我在学习php基础时,个人总结的一些零碎知识,本人文笔不好,可能会出现一...
    宠辱不惊丶岁月静好阅读 1,468评论 0 4
  • PHP 算数运算符 ";echo ($a-$b)." ";echo ($a*$b)." ";echo ($a/$b...
    久久归移阅读 504评论 0 0
  • [if !supportLists]1.[endif]PHP基础(变量的八种类型、empty和isset、null...
    4e855d444c9f阅读 572评论 0 0
  • 个人博客搭建完成,欢迎大家来访问哦黎默丶lymoo的博客 PHP的字符串 首先来区别一下下面两种字符串: 注意:这...
    黎默丶lymoo阅读 327评论 5 15
  • //php的结尾符号可以不用写,开头可以不加php; //echo 可以输出字符串或者数字, //结尾的封号一定要...
    久久归移阅读 705评论 0 0