初识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用来指定该常量是否对大小写敏感。常量不可重复声明,也就是说声明后无法更改其值。常量不同于变量,常量是自动全局的,不管在函数内还是函数外定义,在函数内外都可以访问,类似于超全局变量。超全局变量:在全部作用域中始终可用的内置变量。注:常量前面没有钱($)。
作用域
- local 局部 :函数内部声明的变量,在函数外不可访问(js闭包可以访问函数内部变量),函数执行完后内存回收机制自动销毁局部变量(js不会)。
- global 全局 :函数外声明的变量,在函数内不可访问(在js中称为全局变量,当然可以在函数内访问),如果要在函数内访问,需要做处理:在函数内变量前加“global”,如global $name;
- 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中发送的数据。
以上,都是入门级别的知识,加上了个人理解,请各位大中小牛勿喷。
初识PHP(一)的更多相关文章
- Android动画效果之初识Property Animation(属性动画)
前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...
- 初识Hadoop
第一部分: 初识Hadoop 一. 谁说大象不能跳舞 业务数据越来越多,用关系型数据库来存储和处理数据越来越感觉吃力,一个查询或者一个导出,要执行很长 ...
- python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)
一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...
- 初识IOS,Label控件的应用。
初识IOS,Label控件的应用. // // ViewController.m // Gua.test // // Created by 郭美男 on 16/5/31. // Copyright © ...
- UI篇(初识君面)
我们的APP要想吸引用户,就要把UI(脸蛋)搞漂亮一点.毕竟好的外貌是增进人际关系的第一步,我们程序员看到一个APP时,第一眼就是看这个软件的功能,不去关心界面是否漂亮,看到好的程序会说"我 ...
- Python导出Excel为Lua/Json/Xml实例教程(一):初识Python
Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...
- 初识SpringMvc
初识SpringMvc springMvc简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 s ...
- 初识redis数据类型
初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...
- Redis初识、设计思想与一些学习资源推荐
一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年 ...
- MongoDB【第一篇】MongodDB初识
NoSQL介绍 一.NoSQL简介 NoSQL,全称是”Not Only Sql”,指的是非关系型的数据库. 非关系型数据库主要有这些特点:非关系型的.分布式的.开源的.水平可扩展的. 原始的目的是为 ...
随机推荐
- Dom选择器--内容文本操作
一.文本内容操作 内容: <body> <div id="i1"> 学习是我快乐? <a>晚饭吃什么</a> </div> ...
- 鸟哥的Linux私房菜——第十五章:正规表示法
视频链接 B站:http://www.bilibili.com/video/av10364761/ 目录如下 1. 前言:2. 基础正规表示法:2.1 以 grep 撷取字符串 (grep -iv ...
- Struts2_day03
一.上节回顾 1 在action获取表单提交数据 (1)使用ActionContext类获取 (2)使用ServletActionContext类获取 (3)接口注入 2 结果配置 (1)全局结果页面 ...
- Fiddler抓取HTTPS最全(强)攻略
本文来自于柠檬班49期学员superman童鞋的学习笔记.希望对同样是测试萌新的你有帮助,如果觉得好,可以点个赞噢~ 对于想抓取HTTPS的测试初学者来说,常用的工具就是fiddler.可是在初学时, ...
- Python 入门基础10 --函数基础3 函数对象、名称空间、装饰器
今日内容 1.函数对象 2.名称空间与作用域 3.函数的嵌套调用与闭包 4.装饰器 一.函数对象 1.1 定义 函数名存放的就是函数地址,所以函数名也就是对象,称之为函数对象 1.2 函数对象的应用 ...
- source insigh安装使用
下载和安装: 最好去官网下载(http://www.sourceinsight.com/),最新版本是3.5. 第一次去六维下载了sourceinsight,免安装,但是打开后发现界面没有任何窗口,全 ...
- mysql_存储过程_后一行减去前一行
DELIMITER $$ /*统计单个用户登录次数的存过 @times_count int 返回值 @i 记录行号的变量 初始值为0 @temp 记录时间差的变量 @total 记录登录次数的变量 初 ...
- Submatrix Sum
Given an integer matrix, find a submatrix where the sum of numbers is zero. Your code should return ...
- VCForPython27.msi安装后, 还显示error: Unable to find vcvarsall.bat
C:\Users\zpc\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC 增加环境变量: SET VCPYTH ...
- request_irq与request_threaded_irq
/* * Allocate the IRQ */ #if 0 retval = request_irq(uap->port.irq, pl011_int, 0, "uart-pl011 ...