博客列表 >PHP开发环境搭建与PHP基本语法(PHP开发环境搭建 PHP工作原理 PHP与HTML混编 变量 常量 数组 单双引号的区别 数据类型)2019年2月20日22时

PHP开发环境搭建与PHP基本语法(PHP开发环境搭建 PHP工作原理 PHP与HTML混编 变量 常量 数组 单双引号的区别 数据类型)2019年2月20日22时

小明的博客
小明的博客原创
2019年03月02日 17:58:18876浏览

年后第一节课,我们开始学习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确实再关联数组中应用方便,以前都这几个循环具体应用比较含糊


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议