PHP基础知识详细讲解
coleak 人气:0一、简介
基础知识:
需要一定的html和css的语法知识
基本概念:
PHP(超文本预处理器)是一种通用开源脚本语言,在服务器上执行。
PHP文件:
- PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码
- PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器
- PHP 文件的默认文件扩展名是 ".php"
二、php基本语法
<?php #单行注释1 // 单行注释2 /** 多行注释3 */ echo "<h1>hello world</h1>"; $name="coleak"; $mes="hello"; echo $mes." ".$name; echo "<br>"; echo "my name is $name"; echo "<br>"; echo 'my name is $name'; echo "<br>"; var_dump($name); // 调试函数,没有返回值 ?>
三、变量和作用域
<?php function fun() { $y=0;//局部变量 echo "y的值为: $y"; echo "<br>"; echo "x的值为: $x"; } $x=1;//全局变量 fun(); echo "<br>"; echo "y:$y"; echo "<br>"; echo "x:$x"; ?>
分析:此时函数内不能访问全局变量,需要使用globar $x; 函数外不能访问局部变量。
<?php function fun() { static $y=0;//静态变量 echo "y的值为: $y"; echo "<br>"; $y++; } fun(); fun(); fun(); fun(); ?>
四、常量
<?php // 被替代的写法 define("mess","hello"); echo mess; // 新写法 const name ='coleak'; echo name; function fun() { echo name; } fun(); ?>
五、数据类型
布尔类型
<?php $a=true; $b=False; if(is_bool($a)) if(is_bool($b)) echo 1; ?>
此时输出为1,不区分大小写的弱语言
heredoc和nowdoc
<?php $a=true; $b=False; if(is_bool($a)) if(is_bool($b)) echo 1; ?> <?php $name="coleak"; $message=<<<'EOT' hello $name EOT; echo $message; ?>
上面输出为hello coleak,下面输出为hello $name
数组
<?php $a1=array('12',"12",12); $a2=[1,2,3,4]; $a3=[ "hh"=>6, 5=>'coleak' ]; var_dump($a1); echo "<br>"; var_dump($a2); echo "<br>"; var_dump($a3); echo "<br>"; unset($a3['hh']); var_dump($a3); ?>
array(3) { [0]=> string(2) "12" [1]=> string(2) "12" [2]=> int(12) }
array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) }
array(2) { ["hh"]=> int(6) [5]=> string(6) "coleak" }
array(1) { [5]=> string(6) "coleak" }
对象
<?php class person { var $count=1; function func() { echo $this->count; } } $per1=new person(); echo $per1->count;//后面的count前面不用加$号 echo "<br>"; $per1->func(); ?>
此时输出为两个1
null
<?php $a=1; $b=2; function fun() { echo $a+$b; echo "<br>"; var_dump($a); echo "<br>"; var_dump($b); echo "<br>"; } fun(); var_dump($a); echo "<br>"; var_dump($b); echo "<br>"; ?>
0
NULL
NULL
int(1)
int(2)
<?php $a=10; unset($a); var_dump($a+1); echo $a+2; echo "<br>"; var_dump($b+3); echo $b+4; ?>
2
4
六、运算符
字符串运算符
<?php $a="hello"; $b=$a."world"; $a.="world"; echo $b,"<br>"; echo $a; ?>
helloworld
helloworld
比较运算符
注意:当字符串遇到数字内容的比较时,如果不是使用绝对比较符,则会转化为对应的数字进行比较。
逻辑运算符
数组运算符
<?php $a=[ "a"=>"aa", "b"=>"bb" ]; $b=[ "a"=>"aaa", "c"=>"cc" ]; $c=$a+$b; var_dump($c); ?>
array(3) { ["a"]=> string(2) "aa" ["b"]=> string(2) "bb" ["c"]=> string(2) "cc" }
由此可以看出+时并没有覆盖重复的键。
三元操作符
<?php // 写法一(老旧) $a="coleak"; $name=$a?$a:"nobody"; echo $name; // 新写法 $name2=$a?:'nobody'; echo "<br>",$name2; ?>
coleak
coleak
七、流程控制
<?php $x=[1,2,3,4,5]; foreach ($x as $val) { echo $val."<br>"; } ?>
1
2
3
4
5
八、超全局变量
<?php $a=10; $b=20; function add() { $GLOBALS['z']=$GLOBALS["a"]+$GLOBALS['b']; } add(); echo $z; ?>
30
POST方式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <form method="post" action="index.php"> <p>my_add</p> <input type="text" name="add1"> <br> <input type="text" name="add2"> <br> <input type="submit" value="提交"> </form> </body> </html>
<?php $add1=$_REQUEST["add1"];//也可以用$_POST $add2=$_REQUEST["add2"];//也可以用$_POST $add=$add1+$add2; echo $add; ?>
333
GET方式(不安全)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <form method="get" action="index.php"> <p>Name:<input type="text" name="fname"></p> <p>Password:<input type="password" name="passw"></p> <p><input type="submit" value="提交"></p> </form> </body> </html>
<?php $fname=$_GET["fname"]; $password=$_GET["passw"]; $message=<<<ETO 用户名称 $fname 用户密码 $password ETO; echo $message; ?>
加载全部内容