Blogger Information
Blog 42
fans 2
comment 0
visits 53974
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP开发环境搭建与PHP基本语法(PHP开发环境搭建 PHP工作原理 PHP与HTML混编 变量 常量 数组 单双引号的区别 数据类型)2019年2月20日22时
小明的博客
Original
879 people have browsed it

年后第一节课,我们开始学习PHP。主要内容有:

一、PHP开发环境搭建。

安装谷歌浏览器,安装phpstrom,安装PHP工具箱。都是傻瓜操作,一路下一步。需要注意,PHP的版本切换为最新的,虚拟域名新建好后需要在host中添加相应的链接和域名(127.0.0.1  www.xxx.com)。

二、PHP工作原理

php_run.png

原理如图所示,客户端(用户操作的例如浏览器)通过发送合同谈判请求,然后web服务器(apache)接受http的请求与响应,开始对发过来的数据进行解析,它只认html,对非html例如php出现的话,他会交给PHP。exe进行解析,然后解析成html再返回给web服务器,web服务器然后将html文档给浏览器,浏览器解析成可视的网页供用户浏览。

三、PHP与html混编

注意只有php文件才能识别出里面的php'代码,然后出现混编时php标签应该闭合(<?php?>),echo输出html代码,也可以用heredoc输出大段html代码

四、变量

变量声明必须再开头加$,单行输出简写为<?= ?>,变量的特点可以被更新,可以被释放清空。

五、常量

特点:不能更新  不能删除  不受作用域限制

声明两种方式:define(‘变量名’, ‘值’)    const  常量名  =  值;

两者区别:const定义的值不能为表达式,应为一个确定的值(不需运算)

六、数组

声明方式同js一样,有索引数组和关联数组,索引数组是将索引和值一一绑定,比较快捷缺点没有可读性;关联数组是将键值成对出现,通过键的名字可以了解值的用途;遍历for while 都可以,针对关联数组的foreach使用起来比较方便

七、单双引号的用法

单引号用来作为简单的字符串和变量拼接用;双引号可以解析变量 转义字符等  例如“<span>{$a}</span>”

八、数据类型

标量类型(单值类型)字符串 数字都是  还有布尔型,true用echo输出为1;gettype可以查看数据类型

复合类型(多值变量) 对象就是代表  通过实例化一个类声明一个对象 $obj = new strClass();

NULL类型  is_null判断是否为NULL类型

资源类型  is_resource判断


代码:

实例

<?php
//    标量类型 也是单值类型  就是一个变量里只有一个值  之前的数值 字符串都是 还有布尔型
$win = true;
//输出后转换成1
echo $win;
echo '<hr>';
//gettype可以查看类型
echo gettype($win);
echo '<hr>';
//var_dump 可以查看详细情况
var_dump($win);
echo '<hr>';

//    复合类型  多值变量  有对象
//    用标准类创建一个对象
$obj = new stdClass();
//    添加属性和方法
$obj->name = 'jij';
$obj->getName = function ($obj) {
    return $obj->name;
};
echo $obj->name;
echo '<br>';
//call_user_func 是通过第一个参数为回调函数来用  其他的参数就是回调函数的参数
echo call_user_func($obj->getName, $obj);
echo '<br>';
echo call_user_func_array($obj->getName, [$obj]);
echo '<hr>';

//     NULL  资源类型
$rand;
//错误 返回null 没有定义
var_dump($rand);
echo '<br>';

$rand = null;
//  判断是否为空
echo (is_null($rand));
echo '<hr>';

//    资源类型
$fp = fopen('demo01.html', 'r');
var_dump($fp);
echo (is_resource($fp));

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

<!--html和php的混编-->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title><?php echo '员工管理系统'?></title>
    <style>
table,th,td {
    border: 1px solid #666;
            padding: 8px;
        }
        table {
    border-collapse: collapse;
            width: 80%;
            text-align: center;
            margin: 30px auto;
        }
        thead tr:first-of-type {
    background-color: lightblue;
        }

        tbody tr:hover {
    background-color: #efefef;
        }

        table > caption {
    font-size: 1.2rem;
            margin-bottom: 15px;
        }
        table + p {
    text-align: center;
        }
    </style>
</head>
<body>
    <table>
        <caption>员工信息表</caption>
        <thead>
            <tr>
                <th>编号</th>
                <th>姓名</th>
                <th>年龄</th>
                <th>性别</th>
                <th>邮箱</th>
                <th>密码</th>
            </tr>
        </thead>
        <tbody>
        <?php
         echo '<tr>';
         echo '<td>1</td>';
         echo '<td>猪哥</td>';
         echo '<td>30</td>';
         echo '<td>男</td>';
         echo '<td>zg@php.cn</td>';
         echo '<td>123456</td>';
         echo ' </tr>';
        ?>
        <?php echo
            '<tr>
                <td>2</td>
                <td>朱老师</td>
                <td>40</td>
                <td>男</td>
                <td>zls@php.cn</td>
                <td>123456</td>
            </tr>';
        ?>

            <tr>
                <td>3</td>
                <td>西门大官人</td>
                <td>50</td>
                <td>男</td>
                <td>xmdgr@php.cn</td>
                <td>123456</td>
            </tr>
            <tr>
                <td>4</td>
                <td>灭绝师太</td>
                <td>60</td>
                <td>女</td>
                <td>mjst@php.cn</td>
                <td>123456</td>
            </tr>
            <tr>
                <td>5</td>
                <td>韦小宝</td>
                <td>20</td>
                <td>男</td>
                <td>wxb@php.cn</td>
                <td>123456</td>
            </tr>
        </tbody>
    </table>
    <p>总计: 5人</p>
</body>
</html>

<!--这些html代码,使用php应该如何生成?-->

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

<?php
//php中的注释分单行和多行
//这个是单行
/*这个是多行*/
/*php变量定义规则
 *1  变量有类型和值两个属性
 * 2 php的变量是弱类型
 * 3 变量必须以$开头
 * 4 变量名称必须是合法的名称: 字母/数字/下划线  开头不能是数字
 *
 * */
//定义文档标题
$title = '员工信息系统';
//定义表格标题
$tabletitle = '员工信息表';
//定义员工总数
$total = 5;
//变量可以被更新
$tabletitle = 'PHP讲师一览表';
//常量不会被更新  不会改变所以 像php中文网这样的不会轻易改变的可以设置为常量
define('SITE_NAME', 'PHP中文网');
//表格标题可以更新为
$tabletitle = '<a href="">'.SITE_NAME.'</a>讲师一览表';
//常量不允许被更新
//SITE_NAME = 'php.cn';
//变量可以被销毁  此时页面中显示错误变量未定义
//unset($tabletitle);
//常量是不能被删除的
//unset(SITE_NAME);

//数组同js中一样
$user = [1,'猪哥',30, '男', 'zg@php.cn','123456'];
//echo $user[1];
//echo count($user);

//关联数组
//我们需要关联数组通过键来明白里面值的用途
$user1 = [
    'id' => 1,
    'name' => '猪哥哥',
    'age' => 30,
    'gender' => '男',
    'email' => 'zg@php.cn',
    'password' => '888888',
];
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title><?= $title?></title>
    <style>
        table,th,td {
            border: 1px solid #666;
            padding: 8px;
        }
        table {
            border-collapse: collapse;
            width: 80%;
            text-align: center;
            margin: 30px auto;
        }
        thead tr:first-of-type {
            background-color: lightblue;
        }

        tbody tr:hover {
            background-color: #efefef;
        }

        table > caption {
            font-size: 1.2rem;
            margin-bottom: 15px;
        }
        table + p {
            text-align: center;
        }
    </style>
</head>
<body>
<table>
    <caption>
        <?php
//            echo '<span style="color:red;">'.$tabletitle.'</span>'
//            可以通过上面的字符串加连接符加变量的方式,也可以用下面的用双引号解析花括号的方式
              echo "<span style='color:red;'>{$tabletitle}</span>"
        ?>
    </caption>
    <thead>
    <tr>
        <th>编号</th>
        <th>姓名</th>
        <th>年龄</th>
        <th>性别</th>
        <th>邮箱</th>
        <th>密码</th>
    </tr>
    </thead>
    <tbody>
    <tr>
        <?php echo"<td>{$user[0]}</td>
            <td>{$user[1]}</td>
            <td>{$user[2]}</td>
            <td>{$user[3]}</td>
            <td>{$user[4]}</td>
            <td>{$user[5]}</td>";
        ?>

    </tr>
<!--  可以用for循环遍历  -->
    <tr bgcolor="#deb887">
        <?php
            for ($i=0;$i<count($user);$i++) {
                echo "<td>{$user[$i]}</td>";
            }
        ?>

    </tr>
<!--  也可以用while循环 初始变量在外部  -->
    <tr bgcolor="aqua">
        <?php
            $i = 0;
            while ($i < count($user)) {
                echo "<td>{$user[$i]}</td>";
                $i++;
            }

        ?>
    </tr>
<!--  关联数组也可以用for循环  -->
    <tr bgcolor="#7fffd4">
        <?php
            for ($i=0; $i<count($user1); $i++) {
//                current输出当前指针指向的值
                echo '<td>'.current($user1).'</td>';
                next($user1);
            }
        ?>
    </tr>
<!--  for循环用另一种方法  -->
    <tr bgcolor="#9932cc">
        <?php
//        重置指针
        reset($user1);
        for ($i=0; $i<count($user1); $i++) {
//                key方法返回当前指针指向的键名
            $key = key($user1);
            echo "<td>{$user1[$key]}</td>";
            next($user1);
        }
        ?>

    </tr>
<!-- for循环遍历关联数组比较麻烦  用foreach -->
    <tr bgcolor="#a9a9a9">
        <?php
            foreach ($user1 as $value) {
                echo "<td>{$value}</td>";
            }
        ?>
    </tr>
    <tr>
        <td>2</td>
        <td>朱老师</td>
        <td>40</td>
        <td>男</td>
        <td>zls@php.cn</td>
        <td>123456</td>
    </tr>
    <tr>
        <td>3</td>
        <td>西门大官人</td>
        <td>50</td>
        <td>男</td>
        <td>xmdgr@php.cn</td>
        <td>123456</td>
    </tr>
    <tr>
        <td>4</td>
        <td>灭绝师太</td>
        <td>60</td>
        <td>女</td>
        <td>mjst@php.cn</td>
        <td>123456</td>
    </tr>
    <tr>
        <td>5</td>
        <td>韦小宝</td>
        <td>20</td>
        <td>男</td>
        <td>wxb@php.cn</td>
        <td>123456</td>
    </tr>
    </tbody>
</table>
<p>总计: 5人</p>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

<?php
//    标量类型 也是单值类型  就是一个变量里只有一个值  之前的数值 字符串都是 还有布尔型
$win = true;
//输出后转换成1
echo $win;
echo '<hr>';
//gettype可以查看类型
echo gettype($win);
echo '<hr>';
//var_dump 可以查看详细情况
var_dump($win);
echo '<hr>';

//    复合类型  多值变量  有对象
//    用标准类创建一个对象
$obj = new stdClass();
//    添加属性和方法
$obj->name = 'jij';
$obj->getName = function ($obj) {
    return $obj->name;
};
echo $obj->name;
echo '<br>';
//call_user_func 是通过第一个参数为回调函数来用  其他的参数就是回调函数的参数
echo call_user_func($obj->getName, $obj);
echo '<br>';
echo call_user_func_array($obj->getName, [$obj]);
echo '<hr>';

//     NULL  资源类型
$rand;
//错误 返回null 没有定义
var_dump($rand);
echo '<br>';

$rand = null;
//  判断是否为空
echo (is_null($rand));
echo '<hr>';

//    资源类型
$fp = fopen('demo01.html', 'r');
var_dump($fp);
echo (is_resource($fp));

运行实例 »

点击 "运行实例" 按钮查看在线实例

总结:

1、了解了php的工作原理,清楚了他作为后端的一种解释语言所具备的功能;

2、清楚了变量与常量的特点和具体区别

3、单双引号的区别具体化,比以前理解的更深刻

4、foreach确实再关联数组中应用方便,以前都这几个循环具体应用比较含糊


Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments