我们直接下载xampp
,避免很多操作
xampp
下载网址:官网链接 百度云盘
上面的xampp
下载之后就是有php7(百度网盘)
的,然后我们使用php
运行一下测试文件
启用win+R
输入cmd
,在输入一下命令
php -f C:\xampp\htdocs\index.php
后面的 C:\xampp\htdocs\index.php
是文件路径
Apach
的安装目录并进入conf
文件夹打开httpd.conf
文件,如图 http.conf
文件之后找到LoadModule
C:/xampp/php/php7apache2_4.dll
是我的Php适配Apache的dll文件,如下图: 64位MySQl下载
单体MySQL安装教程
当然我们xampp也提供了一个mysql,这个是可以直接使用的,但是任然需要初始化一下,可以去上面的MySQL安装教程里,跳过安装,看怎么配置
这里因为我的学习并不需要,所以不录入博客
//标记起始为:
//PHP代码块
//标记结束为: ?>
?>
//只有起始标记
//PHP代码块
//没有结束标记
// 短标记 short_tag
<?
// 短标记:起始标记没有php
// 目前默认不支持,如果要支持需要开启配置php.ini: short_open_tag = On
?>
****************************************
//ASP标记:asp_tag
<%
//ASP标记:以前ASP语言的方式
//php7已明确不支持
%>
****************************************
//脚本标记
<scrpit lagnguage="php">
//脚本标记:与JavaScript一样
</script>
使用 //
来进行单行注释
// 例如这个
使用 /* */
来进行多行注释
/*例如
这样的
*/
$
符号来声明$
符号后)$
name,年龄对应$
age$
family_name;驼峰法:$
familyName$name = 'Sherry';
$familyName= "Gin";
$family_name= "Lan";
注意打印以上变量需使用 var_dump() 来打印, echo只能打印简单的变量
$a = 100;
$b = $a; //将 $a 的值100赋给了 $b
$c = &$a; //将 $a 指向100的地址赋值给 $c
echo $a,$b,$c; //100,100,100
$b = 'b'; //改变 $b 的结果,但是 $a 不受影响, 依然是100
echo $a,$b,$c; //100,b,100
$c = 'c'; //改变 $c 的结果,但是 $a 与$c 公用一个数值空间,所以 $a 也会变成 'c'
echo $a,$b,$c; //c,b,c
$
符号开始不建议使用
)//有效常量名
define("PI", 3.1415926);
define("SELF_PI", 3);
const FAMILY_NAME = "Green";
define("-_-", "smile"); // 宽松(但是不建议,没有明确见名得意)
上面三个是不能改变的,下面得Markdown不好打出来
array()
关键字来初始化数组[ ]
来初始化数组[ ]
来初始化数组,但是这个时候需要给定一个值,而且一次只能添加一个元素
$user1 = array('name' => "张三", 'age' => 30);
$user2 = array('name' => "李四", 'age' => 23);
$user3 = array('name' => "王五", 'age' => 40);
// 以上全是以为数组
// 下面开始就是二维数组
$users = array($user1, $user2, $user3);
// 访问也很简单,使用下标访问,我们给 $users 下标只是访问到 一维数组 再次使用下标就可以了
echo $users[0]["name"] //这一行可以打印张三
数据类型
)数据来把数据强行转为括号内的数据类型
//简单的赋值
$num1 = 10;
//复合操作
$num1 += 10;
//等价于以下操作
$num1 = $num1 + 10; //注意位置, 是等价于变量在右侧表达式的最左边
//优先级操作
$num2 = 10;
$num2 *= 1 + 1;
//等价操作
$num2 = $num2 * (1 + 1) //注意该操作是左侧变量与右侧整体结果做操作
//注意事项
$num2 /= 0; //错误
//等价操作
$num2 = $num2 / 0 //除数不能为0
/* 错误抑制是一种代码的保护机制,为了不让用户看到错误,因为用户不明白错误是什么原因。更多的时候,程序员应该将所有错误都预估并通过代码表现 */
$a = 10 / 0; //程序直接报错,非常专业错误
@$a = 10 /0; //系统依然错误,但是不会报错给用户
true
或false
连接运算符
和Java、Python不同PHP的连接运算符是 .
一个英文句号来连接左右两边
三元运算符
自操作运算符
//最明显的前置后置区别就是输出
$a = 10;
$b = 10;
echo $a++; // 这时候输出的是10,等echo完了之后在+1
echo ++$b; // 这时候输出的是11,因为他是先+1之后才进行输出的
//注意 ++ 要写在整体变量的前后
//定义变量
$a = 100; //php解释器先解释第一行代码
//输出结果
echo $a; //php解释器顺序执行第二行代码
if (条件){
//满足条件则执行的代码块
}
if (条件){
//满足条件要执行的代码块
}else{
//不满足条件要执行的代码块
}
//支持多种支付
$choice = "微信";
if ($choice == "支付宝"){
echo "支付宝支付";
}elseif ($choice == '微信支付') { //这里使用elseif 或者else if 都行
echo "微信支付";
}else {
echo "其他支付";
}
switch (条件变量){
case 匹配值1:
//满足条件执行的代码块
break;//结束分支结构 注意break; 必须写在case执行完之后否则还会继续执行
case 匹配值2:
//满足条件执行的代码块
break;
default:
//如果都不满足而执行的代码块
break;
}
for (初始化条件; 条件判断; 条件变更){
//重要重复执行的代码(循环体)
};
// 其中如果我们将循环条件设置成 ;; 那么这个就是死循环除非有break; 否则不会退出
$sum = 0;
for ($a=1; $a<=100; $a++){
$sum += $a ** 3;
};
echo "1-100的立方和是:".$sum;
while (循环条件)
{
//循环体
};
//例如
//输出1到100的整数
$i = 1; //定义初始化变量
while ($i <= 100){
//循环体
echo $i; //输出 $i
//变更循环条件
$i++ //在循环体中控制循环变量
}
do{
//循环体
}while(条件);
// 例如
$i = 1;
$res = 0;
do{
//循环体
$res=0;
$i = 0;
}while($i <= 100);
$arr = array("name" => "张三", "age" => "30", "gender" => "男");
foreach($arr as $k => $v){
//$k 代表去除的数组元素的下标
//$v代表去的的数组元素值
echo $k.':'.$v."
";
}
// 循环外访问内部变量
echo $k . ':'. $v . '
'; // 最后一个元素值:gender :男
function 函数名(形参列表){
//函数体
return 返回值;
}
// 例子
function showNumber (){
$sum = 0;
for ($a=1; $a<=100; $a++){
$sum += $a ** 3;
};
return $sum;
}
echo '1-100的立方和为' . showNumber();
function($num = 1){}
这样$num
的默认值就是1
function changeValue($a, &$b){
echo '
';
echo $a++,"
";
echo $b++,"
";
}
$a = 10;
$b = 10;
echo $a,$b;
changeValue($a,$b);
echo $a,$b;
//引用传值必须使用变量传递
// changeValue(100, 100)样子就是错误的
// 因为我们 function 里用的是 &$b 引用的是内存地址所以不能直接赋值
changeValue(100, $b);
function display(){
echo "hello world"; //函数目标是数据输出,所以不需要返回值
}
var_dump(display()); // NULL,说明函数最终还是返回了结果NULL
function getBack(){
return 100;
}
var_dump(getBack()); // 100
//我们可以使用变量来接受返回值
$num = getBack();
echo $num; // 100
static
关键字修饰的变量,这种变量是在函数第一次调用时执行,而且只执行一次,在函数再次调用时,会自动跳过这一行(不会再次执行)。这种变量能够在同一个函数多次调用共享数据的变化。static
关键字修饰变量,通常静态变量都会在定义的时候进行初始化(即给定值)
function getStatic(){
static $c = 0; //静态变量
$var = 0; //普通变量
}
function getStatic(){
static $c = 0; //静态变量
$var = 0; //普通变量
//自增输出
echo $c++, $var++
}
//调用
getStatic(); //0,0:第一次调用,$c初始化,两个都是从0开始,输出后都变成1
getStatic(); //1,0:第二次调用,$c不在初始化,所以是1,
//而$var继续初始化为0,所以最终输出变成1,0,$ c变成2
//作用域
$a = 100; //全局变量,在全局作用域中访问
$_GET['age'] = 1; //超全局变量:借助系统变量$_GET
function display(){
$b = 50; // 局部变量,只能在局部作用域访问(函数自身内部)
// echo $a; // 错误:系统提示该变量未定义
echo $_GET['age']; // 1 能够访问
}
// echo $b; //错误,系统提示该变量未定义
echo $_GET['age'];
global
关键字在函数内部进行引入,global
关键字是一个全局引用/定义变量,如果是引入全局变量,必须使用global
定义一个外部同名变量(global
只能声明变量,不能赋值)
//文件包含
include 'index.php'; //包含index.php文件(当前php文件同级目录)
//调用文件之后就可以使用文件内的函数等
//例如
//调用文件
include 'function.php';
//调用function中的函数
echo '1-100的立方和为' . showNumber();
注意!在引入外部文件时候要先引入在使用外部文件里面的内容,否则就会报错
例如
showNum(); //这时会报错找不到函数
include "function.php";