PHP学习笔记

PHP
Feb 16, 2017 ~

此为我的PHP学习笔记,随时更新学到的内容;记录自己的学习也将笔记分享给需要的人;

输出服务器PHP信息

<?php phpinfo(); ?>

一、写法

1.PHP标记

主要以

<?php

开始和以

?>

为结束

例如

<?php echo "Hello World"; ?>

XML风格

<?php echo "<p>Hello World</p>"; ?>

简短风格

<? echo "Hello World"; ?>

script风格

    <script language="php">
            echo "Hello World";
    </script>
    

ASP风格

<% echo "Hello World"; %>
2.注释

PHP支持C/C++和shell的注释风格;

<?php
        /*
        此种注释风格为多行注释 
        */
        // 下面会输出Hello World
        echo "Hello World";
        # 上面会输出Hello World
?>
3.连接操作符

如下

<?php
        $num = "123";
        echo $num."456";
?>
4.字符串

在双引号中可以解析变量和转义字符,但是单引号中不能解析变量且只能解析转义字符单引号(')和转义字符本身(\),只会将变量名以字符串类型解析;

$num = 10;
$str1 = "$num is number";
$str2 = '$num is string';

echo $str1;      // 10 is number
echo "<br>";
echo $str2;      // $num is string

双引号中的变量前后必须有空格,也就是断点,如果与字符串混淆在一起,就会导致未知变量,但是可以使用{}将变量括起来,如下;

$num = 10;
$str = "this{$num}is demo";
5.定界符

(1) 使用 <<< Name 声明(符号和Name之间不能有空格);

(2) 在开始的定界符(自定义的字符串中)一定要左边接着<<<,写完定界符,一定要直接回车,不能有空格;

(3) 在结尾的字符串定界中,一定要顶头写(没有Tab),和开始的Name要一致,并直接回车;

$num = 10;
$str = <<<start
      Hi \n:
      this $num is a Demo;
start;

echo $str;

给Name加上单引号,将使定界符默认支持双引号的功能改为支持单引号的功能,例如下面代码会直接输出字符串,而不会输出变量$num的值;

$num = 10;
$str = <<<'start'
     this $num is a Demo;
start;

二、函数

声明

function(){

}

参数的默认值只能是标量,如果参数有默认值的话,调用函数时可以不传参,如果传了就会替换默认值;

三、变量

1.变量声明

以 $ 开头,变量名不能以数字开头,区分大小写;

$int = 10;
2.可变变量
$old = "hello";
$$old = 20;

echo $hello;      // 20

3.取址符号

& 符号

$a = 10;
$b = &$a;

echo $a,"<br>";     // 10
echo $b;                // 10

1.只有变量有地址,也就是只有变量才能引用;

2.一个变量的值发生变化,另一个变量的值也会发生变化;

3.在使用unset()这个函数时,如果有引用关系,只是解除了这种引用关系,只删除一个变量,另一个变量还在;

4.如果有给一个变量添加一个新引用,那么这个变量之前的引用关系会被解除,$a / $b=$a / $b=$c / 那么$b不再和$a是引用关系,而和$c是引用关系;

四、数据类型

1.强制转换数据类型

获取数据类型的函数

var_dump();

getType();

(1) setType()函数法

语法:

steType(变量, 类型);

例子:

$str = "10";

setType($str, "integer");

echo getType($str);        // int

(2)赋值声明法

语法:

(类型)数据;

例子:

$int = 10;

$str = (string)$int;       // 在数据前面声明数据类型,只改变当前变量的类型,$int类型不变

echo getType($str);        // string

(3)
intval()、floatval()、strval();

2.自动转换数据类型
$a = 10;
$b = 20.4;
$c = $a + $b;

var_dump($c);        // float(30.4)

整型占4个字节、布尔型占一个字节,所以小的迁就大的;

$a = true;
$b = 10;
$c = $a + $b;

var_dump($c);        // int(11)

字符串和整型会转成整型;

字符串和布尔型会转成整型;

字符串和浮点型会转成浮点型;

整型和浮点型会转成浮点型;

整型和布尔型会转成整型;

浮点型和布尔型会转成浮点型;

3.变量类型的测试函数
is_bool();        // 判断是否是布尔型;

is_int();        // is_integer()和is_long()判断是否为整型;

is_float();        // is_double()和is_real()判断是否为浮点型;

is_string();        // 判断是否为字符串;

is_array();        // 判断是否为数组;

is_object();        // 判断是否为对象;

is_resource();        // 判断是否为资源类型;

is_null();        // 判断是否为null;

is_scalar();        // 判断是否为标量;

is_numberic();        // 判断是否为任何类型的数字和数字字符串;

is_callable();        // 判断是否为有效的函数名;

例子:

$int = 10;

if (is_float($int)){
    echo "变量int是浮点型";
}else{
    echo "变量int不是浮点型";
};

五、常量

1.常量一旦被声明,它的值就不会被改变;
2.常量名称默认是区分大小写的,习惯上常量名全部大写;
3.常量是全局的;
4.常量名前不要加$符号;
5.常量使用函数 define()声明;

define("常量名", "值");

define("ROOT", "Hello World");
define("PASSWD", 123456);

echo ROOT;

6.如果常量没有被声明,调用时会以字符串类型输出常量名;

echo ROOT        // ROOT

7.可以使用define()函数的第三个参数(true或false)来决定是否让这个常量名称区分大小写;

define("ROOT", 100, true);

8.常量不能使用unset()清除一个常量;
9.使用defined()函数来判断一个常量是否存在;

define("ONE", "TWO");

if(defined("ONE")){
      echo "常量ONE存在";
}else{
      echo "常量ONE不存在";
}

10.还可以使用constant()函数读取常量的值;

define("ONE", 10);

echo constant("ONE");
echo "<br/>";
echo ONE;

11.使用 get_ defined_constants()函数获取所有已定义的常量列表;

echo get_defined_constants();
echo "<br/>";
var_dump(get_defined_constants());

六、运算符

1.算术运算符

+  -  *  /  %  ++  --

加  减  乘  除  取模  加加  减减

加加和减减:符号在左和在右的区别

$a = 5;

++$a;        // 先加再用
$a++;        // 先用再加

// 上面两个结果一样

$b1 = 5;
$b2 = 5;

$c = ++$b1;    
$d = $b2++;

echo $c;        // 6                       
echo "<br/>";
echo $d;        // 5

例子

$a =5;

$b = $a++ + ++$a;

echo $a;        // 7                       
echo "<br/>";
echo $b;        // 12

注意:布尔型不参与加加和减减;

2.赋值运算符

=  +=  -=  /=  *=  %= .=

.=的作用:将右边内容附加到左边内容;

$str = "我的名字";
$str .= "叫";
$str .= "Weic";

echo $str;        // 我的名字叫Weic

赋值  加等  减等  乘等  除等

3.比较运算符

>  <  ==  >=  <=  ===  !=  !==

大于  小于  等于  大于等于  小于等于  不等于  不等于

4.逻辑运算符

&&  ||  !

与  或  非

5.位运算符

&  |  ^  ~  >>  <<

6.其他运算符

?  :  @  =>  ->

三元运算符

("?:")三元运算符也是一个比较运算符,对于表达式(expr1)?(expr2):(expr3),如果expr1的值为true,则此表达式的值为expr2,否则为expr3。

<?php 
        $a = TRUE; //A同意
        $b = TRUE; //B同意
	$c = FALSE; //C反对
	$d = FALSE; //D反对
	//咱顺便复习下三元运算符
	echo ($a and $b)?"通过":"不通过";
	echo "<br />";
	echo($a or $c)?"通过":"不通过";
	echo "<br />";
	echo ($a xor $c xor $d)?"通过":"不通过";
	echo "<br />";
	echo !$c?"通过":"不通过";
	echo "<br />";
        echo $a && $d?"通过":"不通过";
	echo "<br />";
	echo $b || $c || $d?"通过":"不通过";
?>
错误控制运算符

PHP 支持一个错误控制运算符:“@”;当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。

运算符的优先级和表达式

表达式:有变量和运算符参与的语句。简单的说,任何有值的东西都是表达式;

$a > 5;

$b = 5;

七、字符串操作

字符串的整理:chop()、ltrim()和trim()

trim()函数可以清除字符串开始位置和结束位置的空格,并将结果字符串返回。默认情况下,除去的字符串是换行和回车符(\n和\r)、水平和垂直制表符(\t和\xoB)、字符串结束符(\o)和空格。

除了这个默认的过滤字符列表外,也可以在该函数的第二个参数中提供要过滤的特殊字符。更具特定用途,可以会希望使用ltrim()函数或rtrim()函数。
这两个函数的功能都类似于trim()函数,他们都以需要处理的字符串作为输入参数,然后返回经过格式化的字符串。这三个函数的不同之处在于trim()将出去整个字符串前后的空格,而ltrim()只从字符串的开始出(左边)除去空格,rtrim()只从字符串的借书处(右边)除去空格。

<?php

$str = " world ";

echo "hello".$str;            // hello world
echo "<br>";
echo "hello".trim($str," ");            // helloworld
echo "<br>";
echo "hello".ltrim($str,"w");

八、流程控制

1.顺序结构
3.分支结构

switch语句

switch语句的工作方式类似于if语句,但是它允许条件可以有多于两个的可能值。在一个if语句中,条件或者为true,或者为false。而在switch语句中,只要条件值是一个简单的数据类型(整数、字符串或浮点型),条件就可以具有任意多个不同的值。

必须提供一个case语句来处理每一个条件值,并且提供相应的动作代码。此外,还应该有一个默认的case条件来处理没有提供任何特定值的情况。

1.如果case中的语句过多,就可以将多个语句做成一个函数之类的;
2.switch(变量) 变量类型只允许整数和字符串;

switch($str){
      case "a" :
            echo "this is a";
            break;
      case "b" :
            echo "this is b";
            break;
      default :
            echo "this is default";
            break;
}

匹配多个值:

switch(){
      case 1 :
      case 2 :
      case 3 :
            echo "hello";
}
3.循环结构

while循环

$num = 0;
while($num <= 100){
        echo $num."<br>";
        $num++;
}

Tags

Weic Ma

没有什么事是一个脑瓜子解决不了的,要是不行就Remove掉你的脑瓜子吧!

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.