php简单学习
php 是一种创建动态交互性站点的服务器端脚本语言.
基础写法:
<?php
echo " hello world";
?>
在实际使用中, print 和 echo 两者的功能几乎是完全一样,echo和print都可以做输出,区别:
(1) echo可以输出多个字符串,像下面这样:
echo 'a','b','c';
如果你非要加上圆括号,注意写成echo ('a','b','c');是错误的,应该写成:
echo ('a'),('b'),('c');
它没有像函数的行为,所以不能用于函数的上下文
echo 没有返回值
(2) print只能输出一个字符串,它可以表现得像一个函数,比如你可以如下使用:
$ret = print 'Hello World';
所有它能用在更复杂的表达式中。
print有返回值1
另外,echo的效率相对比较快~
php 变量 - 是用于存储信息的“容器”
1.以$符号开始,后面跟着变量的名称
2.必须以字母活着下划线字符开始
3.只能包含字母数字字符以及下划线(A-z 0-9 和_)
4.不包含空格
5.区分大小写($y != ¥Y)
php是一门弱类型的语言,so不必向php声明变量的类型,php会自动把变量转化成正确的数据类型。在强类型语言中,必须在使用变量前先声明变量的类型和名称。
php 数据类型
String (字符串) , Integer(整型) , Float (浮点型) , Boolean (布尔型) , Array (数组) ,Object (对象) , Null (空值)
Integer(整型) :是一个没有小数的数字
1.整数必须至少含有一个数字(0-9)
2.不能包含逗号或空号
3.没有小数点
4.可正数可或负数
5.有三种格式:十进制,十六进制(以 0x 为前缀),八进制(前缀为 0)
Float (浮点型) : 是带小数部分的数字,或是指数形式
php常量,是一个简单值的标识符,该值在脚本中不能改变。
一个常量由英文字母,下划线,和数字组成,但数字不能作为首字母出现(常量名不需要加$修饰符)
ps:常量在这个那个脚本中都可以使用
设置常量,使用define()函数,如下:
bool define (string $name, mixed $value [,$case_insensitive = false])
三个参数:
name : 必选参数,常量名称,即标志符;
value:必选参数,常量的值;
case_insensitive:可选参数,如果true ,该常量大小写不敏感,默认敏感。
PS: define( "GREATE","世界这么大,我想去看看");
echo GREATE; //输出 世界这么大,我想去看看
echo greate; //输出 "greate"
define( "GREATE","世界这么大,我想去看看",true); ->不区分大小写的常量
php字符串变量,并置运算符 (.) 用于把两个字符串值连接起来。
<?php
$t1 = "hello";
$t2 = "lulu";
echo $t1.$t2; //加间隔 $t1 . " " . $t2
?>
strlen() 函数
echo strlen("Hello world!"); //输出12;
strpos() 函数
echo strpos("hello world!","world"); //输出6,从0开机计算
php 赋值运算符
运算符 等同于 描述
x = y x = y 左操作数被设置为右侧表达式的值
x += y x = x + y 加
x -= y x = x - y 减
x *= y x = x * y 乘
x /= y x = x / y 除
x %= y x = x % y 模(除法的余数)
a .= b a = a . b 连接两个字符串
例:$a="Hello";$b=$a."world!";echo$b;//输出Hello world!
PHP 递增/递减运算符
运算符 名称 描述
++ x 预递增 x 加 1,然后返回 x
x ++ 后递增 返回 x,然后 x 加 1
-- x 预递减 x 减 1,然后返回 x
x -- 后递减 返回 x,然后 x 减 1
例:$x=10;echo++$x; //输出11
PHP 比较运算符
不等于 != 或者 <> 其他跟js一样
PHP 逻辑运算符
and == && 与 ; or == || 或;
xor 异或 如果 x 和 y 有且仅有一个为 true,则返回 true
ps:x=6
y=3
(x==6 xor y==3) 返回 false
!x 非 如果x不为true,返回true
ps:x = 6; y = 3;
!(x == y) 返回true;
php数组运算符
运算符 名称 描述
x + y 集合 x 和 y 的集合
x == y 相等 如果 x 和 y 具有相同的键/值对,则返回 true
x === y 恒等 如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true
x != y 不相等 如果 x 不等于 y,则返回 true
x <> y 不相等 如果 x 不等于 y,则返回 true
x !== y 不恒等 如果 x 不等于 y,则返回 true
三元运算符
(expr1)?(expr2):(expr3)
对 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。
自 PHP 5.3 起,可以省略三元运算符中间那部分。表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。
<?php
$test = "小公举";
$username = isset($test) ? $test : "nobody";
echo $username , PHP_EOL;
$username = $test ?: "nobody";
echo $username, PHP_EOL;
?>
注意:PHP_EOL 换行符,兼容更大平台。
php7+ 版本多了一个NULL合并运算符,
<?php
$username = $_GET['user'] ?? 'nobody';
类似:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
?>
php数组
count()函数 - 返回数组的长度(元素的数量):
遍历关联数组:
$age = array("peter"=>"25","lily"=>"28");
foreach($age as $x=>$x_value)
{
echo "key=" . $x . ", value" . $x_value;
}
php数组排序:
sort() - 对数组进行升序排列;
rsort() - 对数组进行降序排列;
asort() - 根据关联数组的值,对数组进行升序排列;
ksort() - 根据关联数组的健,对数组进行升序排列;
arsort() - 根据关联数组的值,对数组进行降序排列;
krsort() - 根据关联数组的键,对数组进行降序排列;
php 命名空间(namespace)
在php5.3中加入的,可以解决一下两类问题:
1.用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突;
2.为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简称),提高源代码的可读性;
定义命名空间
namespace MyProject; //也可以在一个文件中定义不同的命名空间代码;
ps:在声明命名空间之前唯一合法的代码是用于定义源文件编码方式的declare语句,所有非PHP代码包括空白符都不能出现在命名空间的声明之前。
declare(encoding="UTF-8");//定义多个命名空间和不包含命名空间中的代码
子命名空间
与目录和文件的关系很像,PHP命名空间也允许制定层次化的命名空间的名称。因此,命名空间的名字可以使用分层次的方式定义:
namespace MyProject\Sub\Level; //声明分层次的单个命名空间;
php面向对象
在面向对象的程序设计中,对象是一个由信息及对信息进行处理的描述所组成的整体,是对现实世界的抽象。
对象的主要三个特征:
对象的行为:可以对对象施加那些操作,开灯,关灯就是行为;
对象的形态:当施加那些方法是对象如何相应,颜色,尺寸,外型;
对象的表示:对象的表示就相当于身份证,具体区分在相同的行为与状态下有什么不同;
面向对象的内容: