PHP基础

                  初识    PHP

     php是一种运行在服务端的跨平台的脚本语言。

     PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码

   PHP脚本以<?php 开始,以?>结束
     php也支持<? ?> 不过要修改php.ini文件中short_open_tag = Off 改成short_open_tag = On

一、 输出语句

1、echo

<?php echo "welcome!"; ?>

echo可以输出一个或者多个字符串,逗号隔开

<?php echo 'youyi'."最美"; ?>

使用的时候可以不用加括号,也可以加上括号: echo 或 echo()。

<?php
   echo "欢迎同学们!";
   echo "Welcome" . " to you!";
   echo 1+2+3+4+5;
?>

 2、print输出

print只能输出一个字符串,成功输出则返回1。

可以使用括号,也可以不使用括号: print 或 print()。

3、print_r()

可以把字符串和数字简单地打印出来,只能输出一个字符串,而数组则以括起来的键和值得列表形式显示,并以Array开头

4、var_dump()

判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型。此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

var_dump返回表达式的类型与值而print_r仅返回结果,相比调试代码使用var_dump更便于阅读。

二、注释

1、单行注释://  这是PHP单行注释

2、多行注释:/* 这是PHP多行注释 */

三、数据类型

1、数据类型的获取与判断

  a、获取类型gettype()

  b、判断类型is_类型名()

2、String(字符串)

  a、任何文本放在单引号和双引号中

  b、"hello world"    或者  "hello PHP"

3、Integer(整型)

  a、整数必须至少有一个数字

  b、整数不能包含逗号或者空格

  c、整数可以是正数或者负数

4、Float(浮点型)

  a、带小数部分的数字

5、Boolean(布尔型)

  a、true/false

  b、通常用于判断

6、Array(数组)

  a、数组可以在一个变量中存储多个值

  b、array('volvo','bmw','toyota')

7、Object(对象)

  a、对象必须声明

  b、使用class关键字声明类对象

  c、类是包含属性和方法的结构

<?php
class Car
{
  var $color;
  function __construct($color="green") {
    $this->color = $color;
  }
  function what_color() {
    return $this->color;
  }
}
?>

8、Null(空值)

  a、Null表示变量没有值

  b、Null是数据类型为Null的值

9、对类型转换的四种方式

  a、对变量的重写:

<?php
$aa = 11;
$aa = 'aa';
echo gettype($aa);//string
?>

  b、intval()  floatval()  strval()

< ?php  
$str="123.9abc";  
$int=intval($str);     //转换后数值:123  
$float=floatval($str); //转换后数值:123.9  
$str=strval($float);   //转换后字符串:"123.9"   
?>  

  c、(数据类型)变量

 (int)  (bool)  (float)  (string)  (array) (object)






< ?php  
$num1=3.14;  
$num2=(int)$num1;  
var_dump($num1); //输出float(3.14)  
var_dump($num2); //输出int(3)  
?>  

  d、类型转换settype(变量名,类型)

<?php
$num=12.8;
$flg=settype($num,"int");
var_dump($flg);  //输出bool(true)
echo "<br/>";
var_dump($num); //输出int(12)
?>

四、字符段处理

1、去除空格

  a、trim(string) 去除字符串两边空格

  b、ltrim(sring,'特殊字符') 去除字符串左边空格和特殊字符(特殊字符是可选参数)

  c、rtrim(sring,'特殊字符') 去除字符串右边空格和特殊字符(特殊字符是可选参数)

 例如: 

$str="(:@_@ hello world! @_@:)";

$a=ltrim($str);//去掉左边空格
$aa=ltrim($str,"(:@_@ ");//去掉左边空格和左边的特殊字符(:@——@

$b=rtrim($str);//去掉右边空格
$bb=rtrim($str," @_@:)");//去掉右边空格和特殊字符@_@:)
$cc=ltrim($str,"(:@_@ hell");//去掉左边的(:@——@和hell

echo $str."<br>".$a."<br>".$aa."<br>".$b."<br>".$bb."<br>".$cc;

2、字符串截取

  a、substr(字符串名,截取开始位置,截取长度)

$str="百度一下";
$aa=substr($str,1,2);
echo $aa;

3、字符串分割

    explode()    返回值存到数组中,即返回数组

$str="hello|world|i|am|com";
$aa=explode("|",$str);//以“|”为分割界限,对字符串进行分割
var_dump($aa);//查看一下是不是数组
echo $aa[2];//返回数组的索引2;

3、字符串合成

    implode() 又名join()            返回字符串

$str="hello|world|i|am|com";
$aa=explode("|",$str);
var_dump($aa);
echo $aa[2];

$bb=implode("@",$aa);//将上边得到的数组$aa,合成得到一个字符串类型的变量$bb,并用“@”把原来数组每一项隔开,组成新字符串
var_dump($bb);
echo $bb;

4、字符串替换

    str_replace(替换前的字符,替换后字符,字符串名)

$str="hello world";
$aa=str_replace("hell","1234",$str);
echo $aa;

5、检索字符串中子串出现的次数

    substr_count(字符串名,'查找的字符串')

$str="aaaabbbbbbbbbbbbbbaaaacccccccccccaaaaffffffffffaaaarrrrrrrrr";
$aa=substr_count($str,"aaaa");
echo $aa;//输出4

 6、大小写转换

    strtoupper()函数--将字符串转换为大写                 strtolower()函数--将字符串转换为小写

$str="Hello World!";
$str1=strtoupper($str);
$str2=strtolower($str);
echo $str1."<br><br>".$str2;

7、获取字符串长度

    strlen()        

$str="Hello World!";
echo strlen($str);//输出12

8、定位查找

     strops(字符串名,要查找的字符)函数--查找字符第一出线的索引

$str="aaaabbaaaaaaaaaaaaaaaaaaabbaaaaaaaa";
$str1=strpos($str,"b");
echo $str1;//输出4

9、货币数据字符的格式化输出

    number_format()函数--把数字以货币的形式输出

$str="19846700";
$str1=number_format($str);
echo $str1;//输出19,846,700

10、日期时间的格式化输出     date()函数

 echo date("Y-m-d H-i-s");//输出2016-12-14 12-12-52

五、变量

1、变量

  $变量名=值

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

        变量只能包含字母、数字和下划线

        变量名是区分大小写的       $y 和 $Y 是两个不同的变量

2、对变量的一系列判断

  a、isset():判断变量是否已存在  如果有值  返回true  否则返回false

  b、unset():把变量删除(释放)掉

  c、empty():判断变量是否为空

  d、is_null:判断变量是否为NULL

  e、具体判断表:                 

    变量 empty is_null isset
    $a=”” true false true
    $a=null true true false
    var $a true true false
    $a=array() true false true
    $a=false true false true
    $a=15 false false true
    $a=1 false false true
    $a=0 true false true
    $a=”0” true false true
    $a=”true” false false true
    $a=”false” false false true

3、可变变量

  一个可变变量获取了一个普通变量的值作为这个可变变量的变量名

六、运算符

1、算数运算符 

       运算符     + - * /              复合赋值运算符:+= -= *= /= %= .=

数字型与字符型的数字 是可以用算术运算符运算的  结果的类型是数字型

2、自增与自减

  ++                         --

对运算数进行递增操作          对运算数进行递减操作

在运算数之前,先递增或递减,再赋值:

$i = 1;
$a = i++;  //$a = 1;  此时i为2,但赋给a的是1

在运算数之后,先赋值,再递增或递减

$i = 1;
$a = ++i;  //$a = 2; 先执行i加1 再赋值给a

3、关系运算符

1、大小关系检测

  > >= < <=:满足返回true,不满足返回false

2、等值关系检测

 == != <>(不等) :判断返回值是否相等或者不等

 === !==:判断返回值及返回类型是否相等或者不等

$aa = 10;
$bb = "10";
alert($aa === $bb);

3、逻辑运算符

与:and   如果 x 和 y 都为 true,则返回 true

或 or  如果 x 和 y 至少有一个为 true,则返回 true

异或  xor     如果 x 和 y 有且仅有一个为 true,则返回 true

与     &&     如果 x 和 y 都为 true,则返回 true

或  ||  如果 x 和 y 至少有一个为 true,则返回 true

非  !  如果 x 不为 true,则返回 true

4、三元运算符

表达式 ? expr1: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。

$max = a>b?a:b;

5、数组运算符

x + y  :集合   x 和 y 的集合

x == y   :相等    如果 x 和 y 具有相同的键/值对,则返回 true

x === y  恒等     如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true 

x != y  不相等    如果 x 不等于 y,则返回 true

x <> y  不相等    如果 x 不等于 y,则返回 true

x !== y  不恒等    如果 x 不等于 y,则返回 true

七、字符串处理函数

1、去除空格

trim(string) 去除字符串两边空格

ltrim(sring,'特殊字符') 去除字符串左边空格和特殊字符(特殊字符是可选参数)

rtrim(sring,'特殊字符') 去除字符串右边空格和特殊字符(特殊字符是可选参数)

$str="(:@_@ hello world! @_@:)";

$a=ltrim($str);//去掉左边空格
$aa=ltrim($str,"(:@_@ ");//去掉左边空格和左边的特殊字符(:@——@

$b=rtrim($str);//去掉右边空格
$bb=rtrim($str," @_@:)");//去掉右边空格和特殊字符@_@:)
$cc=ltrim($str,"(:@_@ hell");//去掉左边的(:@——@和hell

echo $str."<br>".$a."<br>".$aa."<br>".$b."<br>".$bb."<br>".$cc;

2、字符串截取

substr(字符串名,截取开始位置,截取长度)

$str="百度一下";
$aa=substr($str,1,2);
echo $aa;

3、字符串分割

explode()      返回值存到数组中,即返回数组

$str="hello|world|i|am|com";
$aa=explode("|",$str);//以“|”为分割界限,对字符串进行分割
var_dump($aa);//查看一下是不是数组
echo $aa[2];//返回数组的索引2;

4、字符串合成

implode() 又名join()            返回字符串

$str="hello|world|i|am|com";
$aa=explode("|",$str);
var_dump($aa);
echo $aa[2];

$bb=implode("@",$aa);//将上边得到的数组$aa,合成得到一个字符串类型的变量$bb,并用“@”把原来数组每一项隔开,组成新字符串
var_dump($bb);
echo $bb;

5、字符串替换

str_replace(替换前的字符,替换后字符,字符串名)

$str="hello world";
$aa=str_replace("hell","1234",$str);
echo $aa;

6、检索字符串中子串出现的次数

substr_count(字符串名,'查找的字符串')

$str="aaaabbbbbbbbbbbbbbaaaacccccccccccaaaaffffffffffaaaarrrrrrrrr";
$aa=substr_count($str,"aaaa");
echo $aa;//输出4

7、大小写转换

strtoupper()函数--将字符串转换为大写            strtolower()函数--将字符串转换为小写

$str="Hello World!";
$str1=strtoupper($str);
$str2=strtolower($str);
echo $str1."<br><br>".$str2;

8、获取字符串长度

strlen()          

$str="Hello World!";
echo strlen($str);//输出12

9、定位查找

strops(字符串名,要查找的字符)函数--查找字符第一出线的索引

$str="aaaabbaaaaaaaaaaaaaaaaaaabbaaaaaaaa";
$str1=strpos($str,"b");
echo $str1;//输出4

10、货币数据字符的格式化输出

number_format()函数--把数字以货币的形式输出

$str="19846700";
$str1=number_format($str);
echo $str1;//输出19,846,700

11、日期时间的格式化输出     date()函数

echo date("Y-m-d H-i-s");//输出2016-12-14 12-12-52

八、数组

1、数组是一个能在单个变量中存储多个值的特殊变量,并且可以根据键访问其中的值

2、数组分类

a、索引数组:用数字作为键名的数组一般叫做索引数组

$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";

b、关联数组:用字符串表示键的数组就是关联数组

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";

c、多维数组:包含一个或者多个数组的数组

3、数组定义方式

a、$array = array(); 空数组

b、$array = array(1,2,3,4,5); 索引数组

c、$array = array(1=>"aa","bb"=>2); 关联数组

4、取值

      $array[0]               $array["bb"]

5、遍历数组

  遍历方式:

for循环    只能遍历索引数组

foreach    遍历索引      foreach($array as $value)

        遍历关联    foreach ($array1 as $key => $value)

each( )    返回数组中当前的键/值对并将数组指针向前移动一步

$attr = array('name'=>'zhangsan','age'=>20);
var_dump(each($attr));//each($attr)[1]  each($attr)[0]
var_dump(each($attr));//each($attr)[1]  each($attr)[0]

list( )    从数组中取值赋给一组变量

$attr = array(1,2,3);
list($a,$b,$c)=$attr; //将右侧数组里面的元素赋值给参数列表里面的变量 
echo $a,$b,$c;

each( )和list( )结合

$attr1 = array("one"=>1,"two"=>2,"3"=>3);
//$attr1 = array(1,2,3);
    while(list($k,$v) = each($attr1)) 
    { 
        /*echo "{$k}--{$v}<br>"; */
        echo $k.'--'.$v; 
        }

使用指针

current()   取得目前指针位置的内容资料

key()    取得目前指针位置的索引值

prev()    将数组的内部指针倒回一位

next()    将数组中的内部指针向前移动一位

end()    将数组的内部指针指向最后一个单元

reset()    将数组的内部指针指向第一个单元

$attr1 = array("one"=>1,"two"=>2,"3"=>3)
echo current($attr1); //取指针指向的当前元素的value值
echo key($attr1); //取指针指向的当前元素的key
next($attr1); //将指针向下调一个
prev($attr1); //将指针向上调一个
end($attr1); //将指针调向最后一个元素
reset($attr1); //将指针复位

九、php中单引号、双引号、花括号

单引号,单引号中的内容会被直接当成一个字符串,单引号中无法输出变量值

$a = 'abcd';
echo '$a';    // 输出结果就是 $a,而不是 abcd

双引号,双引号中可以输出简单变量,不能输出复杂变量,否则会报错

$a = 'abcd';
$b = array('aaa' => 'abcd');
echo "$a";    // 输出 abcd,因为双引号中可以解析简单变量
echo "$b['aaa']";    // 直接报错,因为双引号中不能解析复杂变量

花括号,花括号中既可以输出简单变量,也可以输出复杂变量,如数组、对象等;

$a = 'abcd';
$b = array('aaa' => 'abcd', 'bbb' => array(12,34));
echo "{$a}";    // 输出 abcd
echo "{$b['aaa']}";    // 输出 abcd
echo "{$b['bbb'][1]}";    // 输出 34
原文地址:https://www.cnblogs.com/zhengleilei/p/9163695.html