您的位置:首页 > 编程语言 > PHP开发

PHP-Web服务端-02-PHP基础语法

2019-03-25 19:54 447 查看

PHP

超文本标记是用普通文本描述富文本的一种方式
PHP(PHP: Hypertext Preprocessor)是一种被广泛应用的脚本语言,它可以被嵌入到 HTML中,尤其适合做动态网站开发开发

使用 PHP 的目的就是能让静态网页变成动态网页,能称之为动态网页的核心就是让 HTML 上的内容不再被写死;
而是通过在 HTML 中嵌入一段可以在服务端执行的代码,从而达到动态网页的目标。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF‐8">
<title>当前日期</title>
</head>
<body>
<h1><?php echo date('Y‐m‐d'); ?></h1>	//插入PHP动态获取时间
</body>
</html>

<?php 可以让代码进入"PHP" 模式
?> 可以让代码退出"PHP" 模式

类似于在 HTML 中使用 JavaScript,但是不同的是 JavaScript 运行在客户端,而 PHP 运行在服务端。
只有处于 PHP 标记内部的代码才是 PHP 代码,PHP 标记以外都原封不动

如果文件只有PHP代码,没有混编,需删除结束标记,避免额外产生空格

输出内容的方式

1)echo
<?php
// echo 是 PHP 中的一个特殊的“指令”,
// 不一定需要像函数那样通过 `()` 去使用
// 注意:echo 后面紧跟着一个空格
echo 'hello php';
echo 'hello', 'world';
// => `helloworld`
2)print
<?php
// print 与 echo 唯一区别就是只能有一个参数
print 'hello php';
// print 'hello', 'world';
// => Parse error: syntax error ...
3)var_dump
<?php
// var_dump 是一个函数,必须跟上 () 调用
// 可以将数据以及数据的类型打印为特定格式
var_dump('hello php');
// => 'string(9) "hello php"'

与html混编

1)普通嵌入
<p><?php echo 'hello'; ?></p>
2)语句混编
<?php if ($age >= 18) { ?>
<p>成年人</p>
<?php } else { ?>
<p>小朋友</p>
<?php } ?>
3)指令式混编
<?php if ($age > 18): ?>
<p>成年人</p>
<?php else: ?>
<p>小朋友</p>
<?php endif ?>

变量

编程语言中临时存放数据的容器
PHP 中申明一个变量是用一个美元符号后面跟变量名来表示。变量名同样是区分大小写的。
PHP 中变量无需声明类型,变量的类型根据值的类型来推断。
<?php
$foo; // 申明一个变量,变量名为 `foo`,未对其进行赋值
$bar = 'baz'; // 申明一个变量,将一个值为 `baz` 的字符串赋值给它
echo $foo; // 输出一个变量名为 `foo` 的变量
fn($bar); // 将一个变量名为 `bar` 的变量作为 `fn` 的实参传递
数据类型
string(字符串)
integer(整型)—— 只能存整数
float(浮点型)—— 可以存带小数位的数字
boolean(布尔型)
array(数组)
object(对象)
NULL(空)
Resource(资源类型)
Callback / Callable(回调或者叫可调用类型)
  • 字符串
    1》单引号字符串
    不支持特殊的转义符号,例如 \n
    如果要表示一个单引号字符内容,可以通过 ’ 表达
    如果要表示一个反斜线字符内容,可以通过 \ 表达
    2》双引号字符串
    支持转义符号
    支持变量解析

  • 数组
    1》索引数组

    <?php
    // 定义一个索引数组
    $arr = array(1, 2, 3, 4, 5);
    var_dump(\$arr);
    // PHP 5.4 以后定义的方式可以用 `[]`
    $arr2 = [1, 2, 3, 4, 5];
    var_dump($arr2);

    2》关联数组

    <?php
    // 注意:键只能是`integer`或者`string`
    $arr = array('key1' => 'value1', 'key2' => 'value2');
    var_dump($arr);
    // PHP 5.4 以后定义的方式可以用 `[]`
    $arr2 = ['key1' => 'value1', 'key2' => 'value2'];
    var_dump($arr2);
数据类型转换
<?php
$str = '132';
// 将一个内容为数字的字符串强制转换为一个整形的数字
$num = (int)$str;
// 将一个数字强制转换为布尔值
$flag = (bool)$num;
  • 运算符
    数学运算符,逻辑运算符与 JavaScript 基本一致,无额外特殊情况
    字符串连接(拼接)采用的是比较特殊的 “.”

    <?php
    $name = 'zce';
    // 拼接 `hey ` 和 `zce`
    $message = 'hey ' . $name;
    // 相当于 +=
    $foo .= $message
  • 语句
    分号分割
    if、switch、while、for、 foreach、function…

  • 流程控制
    1.顺序结构
    2.分支结构

    if ... else
    switch ... case

    3.循环结构

    for
    while
    foreach --- 专门用来遍历数组
    <?php
    $arr = array('name' => 'zhangsan', 'age' => '18');
    foreach ($arr as $key =
    4000
    > $value) {
    echo $key . ' ' . $value;
    }
  • 函数
    定义与使用函数的方式与 JavaScript 相同:

    <?php
    // 注意:使用方式有点差异(函数名不区分大小写),但是不要这么搞!!!
    function foo ($name, $title) {
    echo "$name ($title)";
    }
    // 调用
    foo('zce', 'UFO');
    Foo('zgd', 'SBO'); // 大小写不区分

特性

  • 变量作用域
    关于变量作用域,PHP 与绝大多数语言也都不同:默认函数内不能访问函数所在作用域的成员。
    在 JavaScript 中,我们可以在函数作用域中使用父级作用域中的成员

    如果需要访问全局变量,可以通过 global 关键字声明:

    <?php
    $top = 'top variable';
    function foo () {
    // 声明在当前作用域中获取全局作用域中的 `$top`
    global $top;
    $sub = 'sub variable';
    echo $top;
    // => `top variable`
    function bar () {
    // 声明在当前作用域中获取全局作用域中的 `$top` 和 `$bar`
    global $top, $bar;
    echo $top;
    // => `top variable`
    echo $sub;
    // => 任然无法拿到,因为 `$sub` 不在全局范围,而是在 `foo` 函数中定义
    }
    bar();
    }
    foo();
  • 超全局变量
    PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。
    在函数或方法中无需执行 global $variable; 就可以访问它们

    这些超全局变量是:

    $GLOBALS — 引用全局作用域中可用的全部变量
    $_SERVER — 获取服务端相关信息
    $_REQUEST — 获取提交参数
    $_POST — 获取 POST 提交参数
    $_GET — 获取 GET 提交参数
    $_FILES — 获取上传文件
    $_ENV — 操作环境变量
    $_COOKIE — 操作 Cookie
    $_SESSION — 操作 Session

    $GLOBALS

    $GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。
    PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键
    <?php
    $x = 75;
    $y = 25;
    function foo () {
    $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
    }
    foo();
    echo $z;
    // => 100
  • 常量
    定义常量

    <?php
    // 定义常量使用的是内置的 `define` 函数
    // 第一个参数是常量的名称,建议采用全大写字母命名,多个单词下划线分隔
    // 第二个参数是常量中存放的数据,可以是任意类型
    // 第三个参数是常量名称是否区不分大小写,默认 false 区分大小写
    define('SYSTEM_NAME', '阿里百秀');
    define('SYSTEM_ENABLE', true);

    使用常量

    <?php
    // 直接通过常量的名称访问常量
    // 与变量不同的是不需要用 $
    echo SYSTEM_NAME;
    echo SYSTEM_ENABLE;
  • 载入其他文件
    通常情况下,当一个文件中的代码过长,自然会想到要拆分到多个文件中。随着开发经验的积累,慢慢的会发现,
    除了文件过程应该拆分文件,更应该做的事情是根据用途去划分。
    不管你是怎样想的,核心问题都是一样:怎么将代码拆分到多个文件中?

    PHP 中引入其他 PHP 文件有四种方式:

    require
    require_once
    include
    include_once


    总结:

    include 一般用于载入公共文件,这个文件的存在与否不能影响程序后面的运行
    require 用于载入不可缺失的文件
    至于是否采用一次载入(once)这种方式取决于被载入的文件
常用API
任何编程语言本身并没有太多的能力,具体的能力大多数都来源于 API

PHP 的能力来源于它有 1000+ 内置函数,不是每一个函数都默认直接可以使用,有一些需要安装或者启用额外的"插件" 扩展
  • 字符串处理
    1》开启PHP扩展

    1. 将PHP目录中的 php.ini-development 复制一个 修改为 php.ini
    2. 修改扩展文件所在目录 extension_dir
    3. 修改文件中的部分选项(; 是注释符)
    4. 在 Apache 配置文件中申明一下 php.ini 的所在目录

    2》常用字符串处理函数

    1.字符串截取
    string substr ( string $string , int $start [, int $length ] )
    string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding =mb_internal_encoding() ]] )
    2.字符串长度
    int strlen ( string $string )
    mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )
    3.大小写转换
    string strtolower ( string $string )
    string strtoupper ( string $string )
    4.去除首尾空白字符
    string trim ( string $str [, string $character_mask = " \t\n\r\0\x0B" ] )
    string ltrim ( string $str [, string $character_mask ] )
    string rtrim ( string $str [, string $character_mask ] )
    5.查找字符串中某些字符首次出现的位置
    mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
    int mb_strpos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding =
    mb_internal_encoding() ]] )
    6.字符串替换
    mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
    7.重复字符串
    string str_repeat ( string $input , int $multiplier )
    8.字符串分割
    array explode( string $input, string $char )
  • 数组处理

    1.获取关联数组中全部的键/值
    array_keys() / array_values()
    2.判断关联数组中是否存在某个键
    array_key_exists()
    3.去除重复的元素
    array_unique()
    4.将一个或多个元素追加到数组中
    array_push()
    $arr[] = 'new value
    5.删除数组中的最后一个元素
    array_pop()
    6.数组长度
    count()
    7.检测存在
    in_array()
  • 时间处理

    1.时间戳:time()
    从 Unix 纪元(格林威治时间 1970-01-01 00:00:00)到当前时间的秒数
    2.格式化日期:date()
    获取有格式的当前时间
    格式化一个指定的时间戳
    可以通过 strtotime() 将有格式的时间字符串转换为时间
  • 文件处理

    查看全部:http://www.w3school.com.cn/php/php_ref_filesystem.asp

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: