php基础学习-1
1.一般动态网站有哪些?
一般asp和aspx都已经被时代抛弃淘汰了。
过去几年php还比较火,除却使用者的安全编码性,其最大的优点就是建站迅速;而java相对就用的时间长一些但学会java不仅可以建网站还可以写安卓程序。
DOT NET-->.net \ C sharp---> C#
2.BS架构和CS架构
B:browser浏览器
S:seiver服务器
C:client客户端
BS:浏览器和服务器的关系,通过浏览器来访问服务器,比如:新浪、百度;
优点:只要有浏览器就能访问服务器,方便。
缺点:绝大部分的逻辑都在服务器上,这要就造成了瘦客户端胖服务器的关系。对服务器负载要求就很高
CS:客户端和服务器的关系,通过客户端软件来访问服务器,比如:QQ
优点:有一部分逻辑在客户端运行,减轻了服务器的负担 ;; 缺点:要安装客户端软件,麻烦。
3.PHP与apache建立关联
跨平台、开源、语法简单、运行在服务端
4. PHP的4种定界符
1.标准风格(推荐使用)
<?php //PHP code ?>
2.短标记风格
<?
//php code ?>
默认情况下不支持短标记风格,必须在php.ini 中更改配置如下:
3.ASP风格
<% //php code %>
默认情况下不支持asp风格,需要在配置文件中更改
4.SCRIPT风格
<script language='php'> //php code </script>
默认支持。
如果从<?php开始一直到最后,全部都是php代码,可以省略php的结束定界符。
解决显示乱码问题:
5.输出
echo:
- 可以输出字符串和数字
- True输出1,false输出空,不要用echo输出布尔型数据
- 不能输出数组元素,只能显示Array
- echo可以一次输出多个值,每个值用逗号隔开
print:
- print只输出一个值
- 输出规则和echo一样
- 输出成功返回1,失败返回0
print_r:用来输出数组array
var_dump:
可以输出数据类型、数组长度、数组的元素、对象
6. php语法的一般特点
- 语句必须以分号;结尾
- 关于大小写:变量名区分大小写,关键字(if、else、for..)不区分大小写
7.变量
1、变量必须以$开头,比如$name。$不是变量名的一部分,仅仅表示变量的开始。
总结上面例题:传值,保存值的空间是两个,更改一个空间的值不影响另外的变量;传地址,保存值的空间就一个,更改一个变量的值,另一个变量也会变化,因为两个变量指向同一个空间。
2.销毁变量
通过 unset() 销毁变量. 用来销毁变量名;变量的值由PHP的垃圾回收机制去销毁。所谓垃圾数据就是没有变量引用的数据。
3.超全局变量
超全局变量以$_开头,比如$_GET、$_POST
数据类型都是数组。
4.可变变量
将变量名重组到另一个变量中
多学一招:变量中不但可以保存变量名,还可以保存函数名
8.常量
1.自定义常量
当一个数据在脚本执行的周期内不发生变化,可以将这个数据保存在常量中。
常量前面没有$。
语法:define(常量名,常量值,是否区分大小写),默认是区分大小写的。
定义常量可以用特殊字符,但是调用的时候必须通过' constant'关键字调用
常量一旦定义,就不能再重新定义;可以在定义常量的时候先通过defined函数来判断常量是否已经定义:
2.预定义常量
3.魔术常量
多学一招:还可以用 const来声明常量
4.显示所有常量
9.数据类型
变量的数据类型分为强数据类型和弱数据类型。
如果一个变量的类型取决于存放值的类型,这种语言称为弱数据类型语言。
如果声明变量是A类型,就不能存放B类型的数据,这种语言称为强数据类型语言。
PHP和js都是弱数据类型。
PHP变量中可以存十进制、八进制、十六进制:
八进制用0表示;十六进制用0x表示
10.PHP的执行过程
多学一招:opcode缓存保存在内存中,所以PHP执行效率非常高。
如果从概念来理解,PHP没有保存中间代码,可以说是PHP是解释型。但是PHP的执行过程将 opcode缓存保存在内存中,从这个角度来说PHP是编译型的。
11.数据类型详解
1.浮点数
浮点数就是小数,在PHP中,float和 double是一样的。
由于浮点数转成二进制是乘2正向去整,可能会一直循环下去。所有浮点数保存的值是近似值。
所以不能用浮点数做比较:
如果非要比较浮点数就通过 bccomp(值1,值2,比较的位数)函数去比较.如果两个数相等就返回0,值1>值2返回1,否则返回-1
脚下留心:在、java、#语言中浮点数有两种,一种是单精度( float),还有一种是双精度( doub le),双精度的范围比单精度要广。
2. 布尔型
布尔型就是tue和 false
打印布尔型使用 var dump()
3.字符串型
在PHP中,如果字符串内没有变量,显示结果单引号和双引号是一样的。 如果有变量,双引号中的变量要解析。
单引号是字符串,双引号要做运算(将变量的值替换)
因为双引号要运算,而单引号不需要运算,所以,单引号的执行效率比双引号要高
当变量在开头时:
要想不出错就要用{}把变量括起来$在里外都可以。
4.转义字符(\)
如果转义字符后面跟的特殊字符,则将特殊字符转成普通字符;如果转义字符后面跟的是普通字符,转义字符不起作用,转义字符就是一个普通字符。
但是,要注意转义字符和 r、n、t 的组合,\r组合表示回车,\n 表示换行 \t 表示制表符(Tab)。
什么是回车:将光标放到这一行最前面是回车
什么是换行:把这一行放到下面行来叫换行
enter键实际是做了回车然后换行
5.ASCII码
计算机内部使用二进制计算。
1、ASC‖是连续的。
2、小写的字母比大写的大 a>A
3、小写字母和大写字母之间相差32 a-A
ASC‖码用7位的二进制数来表示,可以表示27次方个字符(128个)
ord()将字符转成十进制ASII码
chr()将十进制的数字转成字符
\ 可以转义ASC码
6.使用字符串定界符
- 作用:为输出大量的文本并且不用频繁的转义提供了简单方法
- 开始和结束的定界符必须一样。名字由字符、数字、下划线组成,不能以数字开头。
- 开启标识符前面有三个小于号 <<<
- 结束标识符必须顶格写,前面不能有空格和其他字符,标识符的后面也不能有空格。
字符串定界符分为 heredoc和 nowdoc.---------heredoc中的变量被解析,nowdoc则反之
Heredoc相当于是双引号字符串Nowdoc相当于是单引号字符串。
123