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); ?>

随机推荐

  1. web 开发之js---ajax 中的两种提交方式ajax post 和 ajax get 实例

    ()post http://04101334.iteye.com/blog/637695/ ()get function serializeElement(element) { var method ...

  2. android中init.rc文件的解析问题

    init.rc中文件里会通过import /init.${ro.hardware}.rc文件,这个ro.hardware应该是某个详细的属性.而这个ro.hardware赋值应该是在Init进程中赋值 ...

  3. 2016/4/5 Ajax ①用户名 密码 登陆 注册 ② 判断用户名是否已存在 ③点击按钮出现民族选项下拉菜单 ④DBDA类 加入Ajaxquery方法 数组变字符串 字符串拆分

    ①登陆   注册    查表匹配    0405Ajax.php   ②判断用户名是否存在 <!DOCTYPE html> <html lang="en"> ...

  4. 2016/2/26 <marquee></marquee>实现多种滚动效果

    页面的自动滚动效果,可由javascript来实现,但是有一个html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制.使用marquee标记 ...

  5. 哨兵和docker容器

    1,redis哨兵的配置 redis-6379配置文件内容如下 cat redis-6379.conf port 6379 daemonize yes logfile "6379.log&q ...

  6. Vue实例及生命周期

    1,Vue实例生命周期. 有时候,我们需要在实例创建过程中进行一些初始化的工作,以帮助我们完成项目中更复杂更丰富的需求,开发,针对这样的需求,Vue提供给我们一系列的钩子函数 2,Vue生命周期的阶段 ...

  7. XML中的CDATA是什么?PCDATA是什么?

    PCDATA表示已解析的字符数据. 在CDATA内部的所有内容都会被解析器忽略.

  8. 如何完成dedecms外部数据库调用|跨数据库数据调用

    第1步:打开网站include\taglib文件夹中找到sql.lib.php文件,并直接复制一些此文件出来,并把复制出来的这个文件重命名为mysql.lib.php. 注:mysql.lib.php ...

  9. 用dpkg命令制作deb包方法总结

    用dpkg命令制作deb包方法总结 如何制作Deb包和相应的软件仓库,其实这个很简单.这里推荐使用dpkg来进行deb包的创建.编辑和制作. 首先了解一下deb包的文件结构: deb 软件包里面的结构 ...

  10. appium学习【三】:截图时,图片命令中包含当前的函数名,以区分错误是在哪个函数报的

    import sys funcName = sys._getframe().f_back.f_code.co_name #获取调用函数名 print sys._getframe().f_code.co ...