---恢复内容开始---

(一)、基础(PHP超文本预处理器)

  1、PHP标记(2种)  

    1.<?php?>:大众的用法?和php之间不能有空格否则无效。

    2.<??>:小众的用法如果要想这个标记生效,需要在php.ini加载模块中打开short_open_tag = On。

  2、PHP中的注释

    1.单行注释://和#。

    2.多行注释:/*  注释内容  */。(和css中的注释一样)

  3、PHP中的结束符

    1.因为php的底层语法是用C语言来实现的,因此也继承了它的父亲的特性,每句话的结束必须要有;(分号),如果没有则会报错。

(二)、变量

  1、变量的命名规则:由字母(大小写),下划线,数字(但是不能打头),命名规则大体相同,PHP程序中大小写是敏感的,是表示不同的两个变量。

<?php
$name = 44;
echo "$name";//输出44
$NAME = 55;
echo "$NAME";//输出55
?>

  2、变量的标识符:在PHP中任何的变量都是以$符号开头的,如果没有这个符号则会出现错误。

  3、变量的基本使用(增删改)

 <?php
$name = 'xiaoming';//这里是新增一个变量
$name = 'xiaoqiang';//此处重新修改了变量的值
unset($name);//这是用unset函数删除了一个变量
?>

  4、在PHP中三种查询变量的操作

<?php
$name = 'huahau';//定义了字符串
$num = 23;//定义了整型
$boo = true;//定义了一个布尔类型
$arr = ['name'=>'xiaoming','num'=>34];//定义一个数组
echo "$name".'<br>';
echo "$num".'<br>';
echo "$boo".'<br>';
echo $arr;//echo只能把值输出为字符的形式,对布尔,数组支持不太友好
echo "<hr>";
print_r("$name".'<br>') ;
print_r("$num".'<br>') ;
print_r("$boo".'<br>') ;
print_r($arr);//print_r能把值更友好输出,对布尔不太友好
echo "<hr>";
var_dump("$name".'<br>') ;
var_dump("$num".'<br>') ;
var_dump("$boo".'<br>') ;
var_dump($arr);//var_dump能把值最友好的输出,而且还能输出数据的数据类型
?>

  5、PHP嵌入到HTML中的变量以及注释问题

 <?php
$title = '这是标题';
$name = 'laozhang';
$age = 56;
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title><?php ?></title>
</head>
<body>
<!-- <p>名字:<?php echo $name; ?></p> -->//在HTML中注释了php代码任然是会被执行的,只是在浏览器中被隐藏了输出,Apche会解析php代码。
<p>年龄:<?php echo $age; ?></p>
</body>
</html>

  6、九大超全局预定义数组变量(相当于是系统自己已经定义好了的变量)

<?php
$_ENV//作用:获得程序所部署的环境相关信息。直接输出该变量将无法获取任何信息,需要先配置php.ini中的variables_order= 'GPSCE'选项才能查看。
$_SERVER//作用:获得与服务器交互的相关信息。
$_GET//获取来自表单get的数据并且以数组的形式保存
$_POST//获得来自表单post的数据并且以数组的形式保存
$_REQUEST
$_COOKIE
$_SESSION
$_FILES
$GLOBALS
?>

  7、可变变量(一个变量名是另外一个变量的值)

<?php
$name = "libai";//定义一个变量
$$name = 34;//此时这个变量的变量名是$name的值
echo $$name;//输出结果
?>

  8、变量的传值(值传递,引用传递&)

 <?php
$name = 'lishi';
$str = $name;//值传递
echo "$name";
echo "$str";
echo "<hr>";
$name = 'wangwu';
echo "<hr>";
echo "$name";
echo "$str";
echo "<hr>";
$name = 'lishi';
$str = &$name;//引用的传递
echo "$name";
echo "$str";
echo "<hr>";
$name = 'wangwu';
echo "<hr>";
echo "$name";
echo "$str";
?>

(三)常量(常量也是程序中保存数据的载体,但是在整个程序脚本执行过程中只能定义一次。)

  1、常量的定义方法(const、define):

    1.const 常量名 = 'xiaoming';

<?php
const URL = 'WWW.LAOWANG.COM';
?>

    2、define('URL','WWW.LAOWANG.COM')

<?php
define('URL', 'WWW.LAOWANG.COM')
?>

  2、数组常量

    1.该知识点有点超前,目前大家只需了解PHP7之后常量支持以数组的形式来进行定义即可。

  3、判断常量是否存在(defined)

<?php
define('URL', 'WWW.LAOWANG.COM');
var_dump(defined('URL'));
?>

  4、获得程序中定义出来的所有常量(get_defined_constants)

<?php
define('URL', 'WWW.LAOWANG.COM');
var_dump(get_defined_constants());
?>

  5、预定义常量

    (手册位置)附录=>保留字列表=>预定义常量

  6、魔术常量(不是严格意义的常量,会随着常量的位置变化而变化)

    (手册位置)语言参考=>常量=>魔术常量。

    __FILE__常量返回文件所在的全路径。

 (四)、数据类型(三大类,八小类)

    1、标量数据类型:a)整型(int); b)浮点型(float);c)字符串型(string);d)布尔型(bool);

      复合数据类型:a)数组(array);b)对象(object);

      特殊数据类型:a)资源类型(resource);b)NULL类型;

    2、整型的最大值和最小值问题

      1.在PHP中整型是占4个字节32位的,因此在无符号中最大值为2^32次方-1,最小值为0;

      2.有符号的是因为第一个是符号位了,因此最大值为2^32-1次方-1,最小值为-2^32-1次方。

      3、在PHP中浮点型都是双精度计算的因此在计算最大最小值时候也是如此计算的。

    3、字符串型(用引号包裹的值)

      1.在PHP中单引号和双引号是有区别的:单引号不能解析里面的变量,双引号才可以解析。

 <?php
$name = 11;
echo "$name";
echo '$name';
?>

      2、变量更加良好的输出方式

<?php
$name = 11;
echo "my age is {$name}";
?>

   3、操作字符串相关的函数

     1.implode():以第一个参数指定的字符,来连接第二个参数指定的数组元素的值,最终得到一个连接后的字符串

$arr = ['name'=>'墨子', 'age'=>12, 'height'=>3.1];

$re = implode('&', $arr);//以第一个参数指定的字符,来连接第二个参数指定的数组元素的值,最终得到一个连接后的字符串
echo $re;

      2.explode():以第一个参数指定的字符,来炸开第二个参数指定的字符串,最终得到一个数组,这个数组的每个元素值都第二个参数炸开后的每一个字符串的值

$str1 = '韩非子||13||2.1||aa';
$arr1 = explode('||', $str1);//以第一个参数指定的字符,来炸开第二个参数指定的字符串,最终得到一个数组,这个数组的每个元素值都第二个参数炸开后的每一个字符串的值

      3.str_split():如果不指定第二个参数,则str_split将会把第一个参数指定的字符串按照1个长度的字符炸开成一个新的数组

$str2 = 'abcde';
$re = str_split($str2);//如果不指定第二个参数,则str_split将会把第一个参数指定的字符串按照1个长度的字符炸开成一个新的数组

      4、trim[ltrim去除左空白,rtrim去除右空白符]去除左右空白符(例如空格,换行等....)。

       5、substr(字符串名,参数1,[参数2])截取字符串操作;

<?php
$name = 'abdeidesjkd';
$res1 = substr($name, 3);//如果不指定第三个参数,表示从第两个指定的值开始截取到最后
$res1 = substr($name, 3,7);//如果指定第三个参数,表示从第两个指定的值开始截取到第三个参数位置
$res1 = substr($name, -5);//如果第二个参数是负数表示从右开始查起,并且找到相应字符的个数
var_dump($res1);
?>

      6、strstr(字符串名,参数1,[参数2])

<?php
$name = 'abdeidesjkd';
strstr($name, 'de')//表示从左开始查找字符串de的位置并且一直截取到最后
strstr($name, 'de',true)//表示从左开始查找字符串de找到后反向截取
?>

      7、strtolower转换为小写

      8、strtoupper转换为大写

      9、ucfirst首字母大写

        10、strpos(字符串名,查找的字符,[从第几个位置开始找])从左开始返回字符串的位置的整数。

        11、strrpos(字符串名,查找的字符,)从右开始找返回字符串的位置的整数。

      12、printf占位符这个会直接输出;sprintf占位符,这个不会直接输出可以保存在一个变量中。

      13、echo以字符形式输出结果、var_dump能够输出数据的类型和值、print_r更加友好的输出结果之间的区别

      14、str_shuffle随机的打乱字符串的位置。

  (五)字符串的转义

echo "jies\"ioeds";//双引号中输出双引号
echo 'jies\'ioeds"';//单引号中输出单引号
echo "\$jies";//输出标识符

  (六)类型转换(强制和自动)

    1、自动类型转换

    1.PHP是一门弱类型的语言是因为在碰到一些出现了运算符连接两个数字字符串时候,PHP会自动转换成运算。

    2、强制类型转换

    1.要转换的数据类型前面加(数据类型),除了 资源类型不可以。

  (七)类型转换函数

<?php
$name = '11.1';
var_dump(is_numeric($name));//只要传进来的是数字就可以不区分字符串
// gettype函数 获取数据的数据类型
// is_numeric函数 判断是否是一个数值
// is_int函数 判断是否是一个整型值
// is_bool函数 判断是否是一个布尔型值
// is_float函数 判断是否是一个浮点型值
// is_string函数 判断是否是一个字符串型值
// is_array函数 判断是否是一个数组型值
// is_object函数 判断是否是一个对象型值
// is_resource函数 判断是否是一个资源型值
// is_null函数 判断是否是一个null类型值
?>

  (八)九大超全局预定义数组变量($_GET和$POST)

    1.$_GET是用来接收表单传值get提交过来的数据,并以数组的形式保存到指向的文件中。

    2.$_POST是用来接收表单传值post提交过来的数据,并以数组的形式保存到指向的文件中。

  (十)运算符

    1.赋值运算符

<?php
$num1 = 11;//赋值运算符
$num2 = 22;//赋值运算符
//符号间不能有空格
$num1 +=$num2;//加法运算符
$num1 -=$num2;//减法运算符
$num1 *=$num2;//乘法运算符
$num1 /=$num2;//除法运算符
$num1 %=$num2;//模运算符
?>

    2.算术运算符

<?php
$num1 = 11;//赋值运算符
$num2 = 22;//赋值运算符
//符号间不能有空格
$num1 + $num2;//加法运算符
$num1 - $num2;//减法运算符
$num1 * $num2;//乘法运算符
$num1 / $num2;//除法运算符
$num1 % $num2;//模运算符
?>

    3.比较运算符

<?php
$num1 = 22;
$num2 =45;
//返回值是布尔类型
$nu1 == $num2;//等于 只会判断值是否相等
$nu1 === $num2;//全等于 会判断值的数据类型是否相同
$nu1 != $num2;//不等于 只会判断值是否不相等
$nu1 <> $num2;//不等于 只会判断值是否不相等
$nu1 !== $num2;//不等于 会判断值的数据类型是否不相等
$nu1 < $num2;//小于
$nu1 > $num2;//大于
$nu1 >= $num2;//大于等于
$nu1 <= $num2;//小于等于
?>

    4.飞船运算符

<?php
$num1 = 22;
$num2 =45;
//如果左<右返回值是-1,如果左>右返回值是1,如果左=右返回值是0,
$num1 <=> $num2; ?>

    5.逻辑运算符

<?php
$num1 = 22;
$num2 =45;
$num1 && $num2;//逻辑与 两边都是真才返回真
$num1 and $num2;//逻辑与 两边都是真才返回真
$num1 || $num2;//逻辑或 有一边返回是真就返回真
$num1 or $num2;//逻辑或 有一边返回是真就返回真
$num1 xor $num2;//异或 有一边返回是真另外一边必须是假
!$num1;//取反 真的就是假的,假的就是真的
//其中短路运算符就是如果有一个运算符左边这个判断就能知道了结果则不会去执行第二个判断
?>

    6.连接运算符(字符串连接)

<?php
$num1 = '22';
$num2 ="45";
var_dump($num2.$num1);//会转成字符串4522
?>

    7.错误抑制符(@)

<?php
$num1 = '22';
$num2 ="45";
var_dump(@$num3);//只会在浏览器输出时候屏蔽错误
?>

 待遇后补。。。。。

 

PHP6天基础知识部分的更多相关文章

  1. 韩天峰博客 php基础知识学习记录

    http://rango.swoole.com 写好PHP代码真的不容易,给大家几个建议: 慎用全局变量,全局变量不好管理的,会导致你的代码依赖于全局变量,而耦合度太高. 一定不要复制粘贴代码,可重用 ...

  2. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  3. RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  4. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  5. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  6. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  7. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  8. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  9. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

随机推荐

  1. 【XSY2772】数列 特征多项式 数学

    题目描述 给你一个数列: \[ f_n=\begin{cases} a^n&1\leq n\leq k\\ \sum_{i=1}^k(a-1)f_{n-i}&n>k \end{c ...

  2. pfSense用户界面汉化翻译教程

    pfSense用户界面汉化翻译教程 来源 https://blog.51cto.com/fxn2025/2087182 为了记录自己的汉化过程,同时也为了方便网友自己制作汉化版本,我把自己汉化pfSe ...

  3. 【题解】 bzoj3916: [Baltic2014]friends (字符串Hash)

    题面戳我 Solution 首先长度为偶数可以直接判掉 然后我们可以枚举删的位置,通过预处理的\(hash\),判断剩余部分是否划分成两个一样的 判重要注意,我们把字符串分为三个部分\(L_l+1+L ...

  4. 【CF1139D】Steps to One(动态规划)

    [CF1139D]Steps to One(动态规划) 题面 CF 你有一个数组,每次随机加入一个\([1,n]\)的数,当所有数\(gcd\)为\(1\)时停止,求数组长度的期望. 题解 设\(f[ ...

  5. bzoj4540 序列 (单调栈+莫队+rmq)

    首先,如果我知道[l,r],要转移到[l,r+1]的时候,就是加上以r+1为右端点,[l,r+1]为左端点的区间的最小值,其他情况和这个类似 考虑这玩意怎么求 右端点固定的话,我左端点越往左走,这个最 ...

  6. 使用item pipeline处理保存数据

    一个Item Pipeline 不需要继承特定基类,只需要实现某些特定方法,面向接口. class MyPipeline(object): def __init__(self): "&quo ...

  7. js 判断字符串中是否包含某个字符串

    String对象的方法 方法一: indexOf()   (推荐) var str = "123"; console.log(str.indexOf("3") ...

  8. 【ZJOI2007】粒子运动

    若此段起始点为(stx,sty),速度为(vx,vy),设碰撞时间为t,则(stx+vx·t)²+(sty+vy·t)²=r² → stx²+vx²·t²+2·stx·vx·t+sty²+vy²·t² ...

  9. CF747F Igor and Interesting Numbers

    我佛了,这CF居然没有官方题解. 题意:给定k,t,求第k小的16进制数,满足每个数码的出现次数不超过t. 解: 每个数都有个出现次数限制,搞不倒.一开始想到了排序hash数位DP,不过写了写觉得不胜 ...

  10. [AC自动机][学习笔记]

    用途 AC自动机适用于一类用多个子串在模板串中匹配的字符串问题. 也就是说先给出一个模板串,然后给出一些子串.要求有多少个子串在这个模板串中出现过. KMP与trie树 其实AC自动机就是KMP与tr ...