php(一)
PHP (Hypertext preprocessor 超文本预处理器)
1.环境工具 Xampp等工具
2.apache配置
默认的Apache路径是 c:/xampp/apache 文件夹
可以修改root配置到 自己项目的文件夹 便于使用
路径如下 (修改后需要重启apache才能生效)

需要修改的路径如下(这两个路径要统一)

拓展 修改 localhost 本地伪装域名

3.语法
php 文件 默认以 .php 结尾
以 <?php 开始 以 ?> 结尾 (如果结尾没有其他语言就可以省略 ?>)
每行的结尾 必须有 ; 结尾 否则报错
echo
echo 将字符串 输出到页面 便于调试 (只能输出字符串,输出别的会报错)
拼接字符串
用 . 拼接字符串
变量
以 '$ + 变量名' 以字母下或划线开头 区分大小写
常量
低版本 用 define()函数定义 可以定义的类型有 boolean integer float 和 String
define ('HAHA','啊哈哈哈'); //定义的常量名 要是大写的字符串
echo HAHA; //输出的时候要常量名也要是大写的
高版本 可以用 const 定义 与 ES6同
注释
与 js相同 //单行注释 /**/段落注释
定界符
$str = <<<EOD //EOD 是随意些的 只要和后面保持一致即可 这里写的啥 输出的时候 输出的时候可以原样输出
保留缩进
EOD; //结束 与开始 必须贴最左侧写
echo "<pre>"; //保持格式
echo $str;//注意 推荐写 ?>进行结尾 如果不写结尾不要还有空格 会报错
数组
<?php
$hero = array('法师'=>'安其拉','坦克'=>'程咬金');//定义数组 低版本 5.几 ,没有 6.几版本
$hero = ['法师' => '安其拉','坦克'=>'程咬金'] //5.4以后的版本定义数组的方法 现已7.
echo '<pre>'; //格式化输出,便于观察
print_r($hero); //打印数组
var_dump($hero); //打印 带类型
?>
多维数组
$hero = [
'法师' =>[
'安其拉',
'妲己',
'王昭君',
],
'坦克' => [
'程咬金',
'项羽',
'张飞',
],
]; $fashi = $hero['法师'];
print_r($fashi);
遍历数组
一维数组
<?php
$hero = ['安其拉','陈咬金','项羽'];//定义数组 for ($i = 0; $i < count($hero); $i++) { //for 循环
echo "<li>". $hero[$i] ."</li>";//用 . 拼接字符串
}; ?>
<?php
$hero = ['法师'=>'安其拉','坦克'=>'陈咬金'];//定义数组 foreach($hero as $key => $value) { //foreach 循环 这个用的多一些
echo '类型---'. $key . '英雄---' . $value .'<br>';
}
?>
多维数组
$hero = [
'法师' =>[
'安其拉',
'妲己',
'王昭君',
],
'坦克' => [
'程咬金',
'项羽',
'张飞',
],
];
foreach($hero as $leixing => $list) {
echo '<br>' . $leixing . '<br>';
// for($i = 0; $i < count($list); $i++) {
// echo $list[$i];
// }
foreach($list as $name) {
echo 'name' . $name;
}
}
?>
PHP页面与HTML页面混编 各行换色 gehuanghuanse.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.pink{
background: pink;
}
table,tr,td{
border: 1px solid red;
}
</style>
</head>
<body>
<table>
<?php
for($i = 0; $i < 20; $i++) {
?>
<tr <?php if ($i % 2 === 0 ) {echo "class='pink'";}?>>
<td>00</td>
<td>01</td>
<td>02</td>
<td>04</td>
</tr>
<?php
};
?>
</table>
</body>
</html>
自定义函数
<?php
function fun($name){
echo 'run'.$name;
} fun('伟斌');//===>run ?>
简单的面向对象
<?php
class Foo
{
public function fun1() {
echo 'fun1';
}
static function fun2() {
echo 'fun2';
}
}
var oFoo = new Foo;
oFoo->fun1();
oFoo->fun2(); ?>
简单的api
<?php
//用户信息
class User
{
public static function info()
{
$info = [
'id' => 1,
'name' => 'weibin',
'age' => '15',
'password' => '123456',
'sex' => '1',
];
return json_encode($info); //json_encode() 编码 json_decode()解码
}
} $userinfo = User::info(); //静态的类 可以不new 直接用 :: 来访问
print_r ($userinfo); ?>
随机推荐
- 嵌入式开发之davinci--- 8148 中dsp在dsp_drv.c中的processdata()加算法出现下边缘条纹问题
(1)问题原因 dsp在alglink_priv.c中做灰度处理发现,下面出现条纹,后面发现是cache 缓存没及时写进内存问题 (2)解决办法 for(frameId=0; frameId<f ...
- JNI/NDK开发指南(2)
1.生成动态库.so,存放于手机的system/lib/中(APP怎样将.so存入该文件夹,奇怪?????),Java层调用JNI的类会运行静态代码System.loadLibrary("* ...
- C# 中串口通信 serialport1.DataReceived 函数无法触发或者出发延时等等问题解决方法
以前这个问题困扰我多天最后查资料一大堆,最后最终攻克了,看到非常多人做C#串口都遇到相同的问题,所以写一篇博文,以便学习交流. 一定要在com实例化的时候设置ReceivedBytesThreshol ...
- 关于Vim的一个配置文件
昨天晚上+今天早上怒赶了一份关于Vim的自动化配置的Shell脚本,之前在github上见过一个这么一个类似的脚本项目,然后又见到同校的有一位师兄也写过这么一个类似的脚本文件,然后我也抽分跟着写一份属 ...
- DP专题之概率DP
注意:在概率DP中求期望要逆着推,求概率要正着推 概率DP求期望: 链接: http://acm.hdu.edu.cn/showproblem.php?pid=4405 dp[ i ]表示从i点走到n ...
- 【转】Echarts的使用以及动态加载数据
一.Echarts的介绍 ECharts开源来自百度商业前端数据可视化团队,基于html5 Canvas,是一个纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新 ...
- Linux设备模型 (4)
<Linux设备模型 (2)>和<Linux设备模型 (3)>主要通过一些简单的实作介绍了kobject.kset.kobj_type.attribute等数据结构的用法,但这 ...
- CentOS6.0忘记root密码解决办法
说明操作系统:CentOS 6.0遇到问题:忘记管理员账号root的密码,进不了系统解决办法:重置root密码为123456操作: 开机启动系统,在进入系统之前按键盘上面的Esc键,会进入下面的界面 ...
- C++中continue
/* C++中continue使用 Author:盗了一个你 */ #include<iostream> using namespace std; int main() { int val ...
- java.lang.NoSuchMethodError: org.springframework.web.context.ConfigurableWebApplicationContext.setId
运行spring报了这个错误,网上说是spring版本冲突,检查maven依赖,发现我依赖的是spring-core.3.0.5,但是spring-orm和spring-tx依赖了spring-bea ...