PHP6天基础知识部分

时间:2024-03-08 16:05:53

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

(一)、基础(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、变量的基本使用(增删改)

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

  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中的变量以及注释问题

 1 <?php 
 2     $title = \'这是标题\';
 3     $name = \'laozhang\';
 4     $age = 56;
 5  ?>
 6 <!doctype html>
 7 <html lang="en">
 8 <head>
 9     <meta charset="UTF-8">
10     <title><?php ?></title>
11 </head>
12 <body>
13     <!-- <p>名字:<?php echo $name; ?></p> -->//在HTML中注释了php代码任然是会被执行的,只是在浏览器中被隐藏了输出,Apche会解析php代码。
14     <p>年龄:<?php echo $age; ?></p>
15 </body>
16 </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、变量的传值(值传递,引用传递&)

 1 <?php  
 2     $name = \'lishi\';
 3     $str = $name;//值传递
 4     echo "$name";
 5     echo "$str";
 6     echo "<hr>";  
 7     $name = \'wangwu\';
 8     echo "<hr>";
 9     echo "$name";
10     echo "$str";
11     echo "<hr>";  
12     $name = \'lishi\';
13     $str = &$name;//引用的传递
14     echo "$name";
15     echo "$str";
16     echo "<hr>";  
17     $name = \'wangwu\';
18     echo "<hr>";
19     echo "$name";
20     echo "$str";
21 ?>

 

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

  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中单引号和双引号是有区别的:单引号不能解析里面的变量,双引号才可以解析。

1 <?php  
2     $name = 11;
3     echo "$name";
4     echo \'$name\';
5 ?>

      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);//只会在浏览器输出时候屏蔽错误
?>

 待遇后补。。。。。