php基础

如何运行

这里用vscode举例

调出cmd
在终端输入php 名字+tab(tab自动补全名字)

记得要进入目标目录下
在这里插入图片描述

语法

在php文件中,既可以包含HTML代码,也可以包含php代码
而php代码必须用 <?php ?>包裹起来

举个例子

<html>
	<head>
		<title>Example</title>
	</head>
	<body>
		<?php
			echo "Hi, I'm a PHP script!";//可以看到php语句在HTML中
		?>
	</body>
</html>

注释

// 注释当前一行
/包裹内容全部注释/

输入输出语句

输出

echo “hellow word\n”;
输出一个或者多个字符串
var_dump(“hello word”);
打印相关变量的信息
printf(“%s”,“hellow word\n”);
和c语言一样,格式化输出
var_export
输出或者返回一个变量的字符串表示

<?php
    echo "Hello World\n";
    var_dump("Hello World");
    printf("%s","hello word\n");
?>

在这里插入图片描述

输入

fgets(STDIN): 获取输入的当前行
fread(STDIN,n): 获取前n个字符
fgetc(STDIN):获取一个字符
sscanf(string $str ,string KaTeX parse error: Expected ‘EOF’, got ‘&’ at position 17: …ormat [, mixed &̲… ]):将 str 按照 fromat 进行格式化解析

<?php
    $str = fgets(STDIN);//获取当前行
    sscanf($str,"%s %d",$s,$d);
    echo $s,$d;
?>

在这里插入图片描述

变量

$a=1;
$b;
%c="hellow word";

$+变量名

如果为赋值直接使用,变量将为空

变量作用域

分为全局变量,局部变量和static关键字

全局变量:定义在函数外都可以使用的变量,在整个文件中都可以用,作用域是从定义处一直到文件结尾

局部变量:函数内定义,只能在函数内部使用,作用域就是函数定义范围内。函数内使用全局变量需要global关键字或者==$globals[变量名]==数组

static关键字:将变量生存周期变为全局,不会影响作用域

超级全局变量

$GLOBALS://一个包含了全部变量的全局数组。变量的名字就是数组的键。
$_SERVER://服务器和执行环境信息,是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组
$_GET:HTTP GET //变量,通过URL参数传递给当前脚本的变量的数组。 自动url解码
$_POST:HTTP POST// 变量,HTTP POST请求的。Content-Type 是 application/x-www-formurlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本
$_FILES:HTTP //文件上传变量,通过 HTTP POST方式上传到当前脚本的项目的数组
$_REQUEST:HTTP //Request 变量,默认情况下包含了 $_GET(自动url解码),$_POST 和$_COOKIE 的数组。
$_SESSION://Session 变量,当前脚本可用 SESSION 变量的数组
$_ENV://环境变量,通过环境方式传递给当前脚本的变量的数组。
$_COOKIE://HTTP Cookies,通过 HTTP Cookies方式传递给当前脚本的变量的数组
$php_errormsg://前一个错误信息
$HTTP_RAW_POST_DATA://原生POST数据
$http_response_header://HTTP 响应头,使用HTTP 包装器时,$http_response_header 将会被HTTP 响应头信息填充。
$argc://传递给脚本的参数数目,传递给脚本的参数数目
$argv:传递给脚本的参数数组,传递给脚本的参数数组

数据类型

数字型

$int1=1234 //十进制正整数
$int2=-1234 //负整数
$int3=01234 //八进制整数
$int4=0x1234 //十六进制整数
$float1=666.66 //浮点数
$float2=6.6666e2 //表示6.6666乘以10的2次方,为指数形式的浮点数

字符串型

$c1 = 'c'
$c2 = "c"
$s1 = 'str'
$s2 = "str"

布尔型

只有true和false

$a = true;
$b = false;

数组型

定义

PHP中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。
key的值必须是整型或者字符串型,values值可以是任何类型。
定义数组时如果不加key键,key值默认从0开始(下标从0)。

$array1 = [
	"foo" => "bar",
	"bar" => "foo",
];
$array2 = ['a','b']; #等价于 $array2 = [ 0 => "a", 1 => "b"];
$array3 = array(
	"foo" => "bar",
	"bar" => "foo",
);
$array4 = array("a","b"); #等价于 $array4 = array(0 =>'a', 1=>'b')

增加元素

改变赋值来增加元素

$arr['xxx']='yu';

删除元素

利用unser()函数

unset($arr['xianyu']);

查找元素

用key直接访问

var_dump($arr['aaa']);

修改元素

通过ket访问并且修改

$arr['aaa']='xianyu'

常量

定义

define ( string $name , mixed $value )
	name:必选参数,常量名称,即标志符。
	value:必选参数,常量的值。
define('SCHOOL','xianyu');
echo SCHOOL;

在这里插入图片描述

系统常量

名字 作用
_LINE _ 文件中的当前行号。
_FILE _ 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
_DIR _ 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
_FUNCTION _ 函数名称(PHP 4.3.0 新加)。
_CLASS _ 类的名称(PHP 4.3.0 新加)。
_TRAIT _ Trait 的名字(PHP 5.4.0 新加)。
_METHOD _ 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
_NAMESPACE _ 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0增)。

运算符

算数运算符

符号 意义
+
*
/
% 取余
++ 累加
累减

字符串运算符

只有一个英文句号 .

赋值运算符

符号 意义
= 右边的赋值给左边
+= 左边的值加上右边的值
-= 左边的值减去右边的值
*= 左边的值乘右边的值
%= 左边的值对右边的值取余数
.= 左边字符串连接到右边

位运算

符号 意义
& 按位与
竖杠 按位或
^ 按位异或
>> 按位右移
<< 按位左移
~ 按位取反

逻辑运算符

符号 意义
&&(and) 逻辑与
两个竖杠 逻辑或
xor 逻辑异或
逻辑非

比较运算符

符号 意义
< 小于
> 大于
<= 小于等于
>= 大于等于
== 等于(不包括类型)
=== 完全等于(类型也要相等)
!= 不等于

其他运算符

符号 意义
$ 定义变量
& 变量地址
@ 屏蔽错误信息(扔到函数前头)
-> 应用对象方法或者属性
=> 用于数组元素赋值)
?: 三目运算符

流程控制语句

if-elseif-else

if ($a > $b) {
	echo "a is bigger than b";
} elseif ($a == $b) {
	echo "a is equal to b";
} else {
	echo "a is smaller than b";
}

switch

switch ($i) {
	case 0:
		echo "i equals 0";
		break;
	case 1:
		echo "i equals 1";
		break;
	case 2:
		echo "i equals 2";
break;
}

while

$i = 1;
while ($i <= 10) {
	echo $i++;
}

do-while

$i = 0;
do {
	echo $i;
} while ($i > 0);

for

or ($i = 1; $i <= 10; $i++) {
	echo $i;
}

foreach

$arr = array("one", "two", "three");
foreach ($arr as $key => $value) {
	echo "Key: $key; Value: $value<br />\n";
}
foreach ($arr as $value) {
	echo "Value: $value<br />\n";
}

函数

<?php
function add_some_str_a($string)
{
	$string .= 'and something extra.';
}
function add_some_str_b(&$string)
{
	$string .= 'and something extra.';
}
$str = 'This is a string, ';
add_some_str_a($str);
echo $str."\n";
add_some_str_b($str);
echo $str."\n";
?>