• php 快速上手


    基本语法

    PHP 标记

    php 以 <?php ?>(可以选用, 推荐, 防止输出空白) 作为开始和结束标记.

    打印

    php 有 echo(多参数) 和 print(单参数) 可以用于打印输出, 分别可以使用表达式(加括号)和语句(不加括号)形式.

    语言结构

    php 中有一些特殊调用其实是 php 的语言结构, 比如用于输出的 echoprint, 语言结构和函数的区别是, 语言结构是 php 语法的一部分(关键字), 不能被用户定义或添加.

    变量和常量

    php 中变量以一个美元符号跟变量名来表示, 区分大小写.

    大部分变量作用域只有一个单独范围. 函数定义引入局部范围.

    global 关键字在作用域中声明全局变量, 也可使用预定义变量对象 $GLOBALS.
    static 关键字定义静态变量.
    gloablstatic 变量是作为引用实现的.

    php 中可以使用 define 函数和 const 关键字来定义常量.

    php 中预定义了很多变量(http://php.net/manual/zh/reserved.variables.php)和常量(http://php.net/manual/zh/language.constants.predefined.php).

    可变变量

    用两个 $ 符号实现可变变量.

    预定义变量

    数据结构

    4 种基本类型, boolean, integer, float(一般为双精度), string.

    2 种符合类型, arrayobject.

    2 种特殊类型, resourceNULL.

    string

    string 有4种表示方式, 双/单引号, heredoc 和 newdoc (<<< 表示).
    双引号和 heredoc 会替换变量和转义特殊字符.

    数组

    php 中的数组实际上是一个有序映射(ordered map). 数组可使用 array(1, 2, key => value) 语言结构或 [1, 2, key => value] 语法创建.

    数组中的 key 会进行强制转换(http://php.net/manual/zh/language.types.array.php#example-99).

    unset 语言结构用于删除键值对.

    list 语言结构数组解构.

    流程控制语句

    php 流程控制语句块除了可以用大括号分割外, 还可以使用冒号来分割, 最后再加上 end语句名即可. 适合用于直接输出 html 使用.

    if-elseif-else

    循环

    while 语句: while 和 do-while.
    for 语句: for(exp1; expr2; expr3).
    foreach 语句: foreach($arr as (value) 和 foreach()arr as $key => $value)

    break 语句: 可以接受一个可选的数字参数来决定跳出几重循环, 默认为 1。
    continue 语句: 可以接受一个可选的数字参数来决定跳过几重循环, 默认为 1, switch 语句也可以 continue

    declare 指令

    现在只有两种指令, ticks 和 encoding.

    函数

    php 中的所有函数和类都具有全局作用域,可以定义在一个函数之内而在之外调用,反之亦然。

    php 函数参数可以按引用传递(c++相似)

    可变函数

    php 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。可变函数可以用来实现包括回调函数,函数表在内的一些用途。

    匿名函数 (js相似)

    类, 面向对象

    属性

    属性通过 public, protectedprivate 来声明, 通过 (this->property 来引用. ()this 表示实例的引用)
    类静态属性通过 self::staticProperty 来引用. (self 表示类的引用)

    构造, 析构函数

    function __construct ($args){ parent::__construct($args); }, (parent 表示父类的引用)
    function __destruct(){}

    抽象类和接口(java相似)

    Trait (ruby module include 相似)

    优先级: 当前类 > trait > 父类继承.
    冲突: use 多个 trait 时, 如果有方法名相同, 会产生冲突.
    组合: trait 可以组合成 trait.

    魔术方法 (python 类似)

    php 中魔术方法以双下划线开头, 如 __construct__destruct`.

    匿名类 (php 7)

    迭代器和生成器 (python 类似)

    异常, 错误处理, 测试

    异常: try-catch-finally

    模块

    requireinclude 语言结构包含并运行指定文件, 区别是在处理失败时前者产生错误, 后者只产生警告.
    文件查找顺序: 绝对相对路径 或 include_path -> 脚本当前目录 -> 错误或警告.
    requireinclude 有返回值, 成功为 1, 可以通过在包含文件中 return 改写返回值.

    require_onceinclude_once 在文件已经包含时不会运行.

    命名空间

  • 相关阅读:
    tomcat与resin的比较
    Linux Resin 安装配置
    [BZOJ3456]城市规划
    ZJOI 2017 仙人掌
    「LibreOJ NOI Round #1」动态几何问题
    [SDOI2015]约数个数和
    codeforce 940F
    codeforce 940F
    codeforce 940E
    [NOI2009]植物大战僵尸
  • 原文地址:https://www.cnblogs.com/wbin91/p/6337692.html
Copyright © 2020-2023  润新知