zoukankan      html  css  js  c++  java
  • 初识PHP(一)

    做为一名合格的前端开发攻城狮,了解一门服务端语言是必须的,所以我选了php。都说学的第一门语言对第二门语言会产生较大的影响,确实,每当我看到一个php知识点时,就同时会想到这个知识点在Javascript中有没有,有什么不一样?还有一些知识是共通的,这加快了我的php入门速度。为了加深自己的印象,我准备记录一下学习php的过程,这个过程中将会穿插一些php与Javascript的异同点。我选的第一份教程是来自w3school,因为上面的教程比较基础适合入门(当然慕课网的也不错),我的html也是从那里起步的。

    语法

    跟js一样,php也是一门脚本语言,但它运行在服务端,php语句必须以分号结尾,js就不用。相比js,php多了一种注释方式#。php中只有变量对大小写敏感。

    变量

    • 变量以$开头,有人说程序员想钱想疯了,到处都是美元符,$后面是变量名
    • 变量名必须以字母或下划线开头
    • 变量名只能包含数字、字母、下划线

    补充:php中没有变量声明提升的概念,所有在使用变量或函数前必须先声明。

    跟js一样,php也不需要定义变量的类型,php会自动转成正确的数据类型。

    常量

    常量需要用define(a,b,c)来声明,a是常量名,b是常量的值,c用来指定该常量是否对大小写敏感。常量不可重复声明,也就是说声明后无法更改其值。常量不同于变量,常量是自动全局的,不管在函数内还是函数外定义,在函数内外都可以访问,类似于超全局变量。超全局变量:在全部作用域中始终可用的内置变量。注:常量前面没有钱($)。

    作用域

    1. local 局部 :函数内部声明的变量,在函数外不可访问(js闭包可以访问函数内部变量),函数执行完后内存回收机制自动销毁局部变量(js不会)。
    2. global 全局 :函数外声明的变量,在函数内不可访问(在js中称为全局变量,当然可以在函数内访问),如果要在函数内访问,需要做处理:在函数内变量前加“global”,如global $name;
    3. static 静态 :用在函数内声明变量,跟local的区别是static声明的变量在函数执行完后不会自动销毁。

    输出

    echo:可输出多个字符串,无返回值,比print稍快

    print:只能输出一个字符串,返回值总是1

    数据类型

    • 字符串 string
    • 整数 int,就是非小数
    • 浮点数 float,即小数或指数形式的数字
    • 逻辑 boolean,即true和false
    • 数组 array
    • 对象 object
    • NULL null,唯一值即null
    • 资源 resource  通过mysql查询返回的值称为资源

    检测数据类型的函数是var_dump(),数据类型与js有些许不一样,php中数字分为了两种,浮点数也单独做为一种数据类型了。

    字符串函数

    检测字符串长度的strlen(),长度以字符计,单个数字、英文、空格计一个字符,单个中文计3个字符。js里单个中文计长度1。

    在字符串中检测指定的字符用strpos()函数,相当于js的.indexOf()方法,找到就返回对应的位置,没找到时strpos()返回false而indexOf返回-1。

    运算符

    比较多,就只说与js不同的吧。

    .运算符在php中叫串接,相当于js中字符串+字符串中的+号的功能,.=也就相当于js字符串拼接时的+=;

    比较运算符中有两个不等于:!=和<>,不知道它们的区别在哪里?度娘和google也未搜到相关答案,有知道的同学还望告知不胜感激!另外还有一个完全不等于!==,值不相等,类型也不同。

    逻辑运算符中有一个异或xor,运算符两边的值有且只有一个为true结果才为true。

    if else/switch/while/for循环大致和js相同。

    函数

    php中的函数设置默认值直接在函数名后面的括号内设置,如设置$num的默认值为2:

    function getNum($num=2){
        return $num;
    }
    echo getNum(); // 2

     数组

    php中的关联数组类似js中的json,如下面是一个关联数组:

    $arr = array("name"=>"wangmeijian","age"=>1024,"sex"=>"boy");

    不同与js的是,php中不能直接echo出数组内容,js中可以用alert或console.info打印出来。

    数组排序,php就比js丰富了,有正序sort(),倒序rsort(),按键正序ksort(),按键倒序krsort(),按值正序asort(),按值倒序arsotr()。

    最后介绍几个超全局变量:

    $GLOBALS:可以通过$GLOBALS[变量名]读取php脚本中任意全局变量,其实就相当于js的window。

    $_SERVER:保存关于报头、路径和脚本位置的信息。

    $_REQUEST:用来收集表单提交的数据,根据表单name值来读取对应表单值,如$_REQUEST['age']读取年龄。

    $_POST:用来收集通过post方式提交的数据,通过name读取对应值。

    $_GET:用来收集通过get方式提交的数据,也可以收集url中发送的数据。

    以上,都是入门级别的知识,加上了个人理解,请各位大中小牛勿喷。

  • 相关阅读:
    python 结巴分词简介以及操作
    JWT(Json web token)简介
    为什么推荐前端使用Vue.js
    Vue 加载外部js文件
    Docker简介以及操作
    'QueryDict' object is not callable 错误解析
    django- Vue.js 操作
    django —— KindEditor
    websocket ----简介,以及demo
    python --商品评价---- 数据表结构以及理解
  • 原文地址:https://www.cnblogs.com/wangmeijian/p/4228430.html
Copyright © 2011-2022 走看看