最近抓着零散的时间学一下PHP7
PHP
的特性,适合有其他语言基础后阅读
相关链接
基础
标记风格
被括起来的所有代码都要符合PHP
规范,如果均为PHP
代码,?>
可以省略
<?php
?>
执行符
识别指令的符号,其实就是所谓的代码以";"结尾,特性是可以换行和空白,这个特性可以用来排版
<?php
echo "dd
dd
";
?>
注释
//单行注释
#单行注释
/**
*多行注释
*/
变量
和js
一样,不需要声明类型,使用符号$
声明,命名可以字母数字下划线,可以单下划线但是不能单数字
$name = value;
使用&值可以指向同一个内存地址,不会开辟新的内存空间
$name2 = &$name
可变变量
$name = 'Sosilent';
$$name = '233';#等价于$SoSilent = '233';
超全局变量
名称 | 解释 |
---|---|
$GLOBALS | 引用全局作用域中可用的全部变量 |
$_SERVER | 保存关于报头、路径和脚本位置的信息 |
$_REQUEST | 用于收集 HTML 表单提交的数据 |
$_POST | 收集提交POST的表单数据 |
$_GET | 收集提交GET的表单数据 |
$_FILES | 上传文件使用 |
$_ENV | 服务器环境变量 |
$_COOKIE | COOKIE变量 |
$_SESSION | 会话控制 |
作用域
$name = 'Sosilent';
function(){
echo $name;#作用域不对
#从全局引入
global $name;
echo name;
}
$GLOBALS中会以字典的形式保存非函数内的变量,所以可以这样访问
echo $GLOBALS['name']
检测与删除
isset()
会根据参数变量是否存在返回布尔值
isset($name);
unset()
则会删除参数所指定的变量,无法删除通过global
而引入的全局变量
unset($name);
静态变量
通常的,变量的声明和赋值会被覆盖
function example(){
$num = 1;
$num = $num + 1;
echo $num()
}
example();
#此时重复调用会持续输出2
static
关键字可以帮助函数内变量持久化的保存
function example(){
static $num = 1;#只在第一次生效
$num = $num + 1;
echo $num();
}
example();
#此时重复调用则会输出2,3,4,5......
数据类型
数值进制转换
中文 | 英文 | 缩写 |
---|---|---|
二进制 | binary | bin |
八进制 | octal | oct |
十进制 | decimal | dec |
十六进制 | hexadecimal | hex |
转换函数的命名大概就是[源进制的缩写]+[转换后进制的缩写]
例如
8转10
echo octdec(777);#551
16转10
echo hexdec("FAF");#4015
与此同时,还提供了一个转任意进制的函数
string base_convert ( string
$number
, int$frombase
, int$tobase
)
echo base_convert('10086',10,5);#10086 从 10进制转换为5进制
字符串
'
和"
的区别,就是"
中可以引用字符串
<?php
$name = 'SoSilent';
header('Content-type:text/html;charset=utf-8');#浏览器编码
$string = "{$name}'s Blog";
?>
.
可以链接两个字符串,也是php中唯一一个字符串操作符
echo "hello"."World";
strlen()
返回参数字符串的长度strpos()
在第一个参数中寻找第二个字符串的位置,并返回,如果没找到会返回FALSE
选择分支
IFELSE 和 Switch 都没什么特别的 太常规了
<?php
$t=date("H");
if ($t<"20")
{
echo "Have a good day!";
}
else
{
echo "Have a good night!";
}
?>
数组
PHP的Array
也可以作为一个Dict
,使用array()
方法创建,Dict则需要指明建值的对应关系
$arr = array(1,2,3,4);
$dict = array("A"=>1,"B"=>2,"C"=>3,"D"=>4);
count()
返回数组的长度
遍历数组
//Array
for($x=0;$x<count($array);$x++){
echo $array[$x];
}
//Dict
foreach($array as $key=>$value){
echo "Key = ".$key.",Value = ".$value."<br>";
}
排序
数组的排序已经被实现了,快速的记忆如下sort()
为基础的排序方法,通过增加前缀,衍生出多个方法:r
表示降序排序(默认是升序)k
表示根据Key
进行排序,a
表示根据Value
进行排序,k
和a
针对关联数组,就是所谓的Dict
衍生出来的方法有
rsort()
,ksort()
,asort()
,krsort()
,arsort()
等循环
循环也没有什么特别的
<?php
//For
for ($i=1; $i<=5; $i++)
{
echo "The number is " . $i . "<br>";
}
//Foreach
$x=array("one","two","three");
foreach ($x as $value)
{
echo $value . "<br>";
}
//While
$i=1;
while($i<=5)
{
echo "The number is " . $i . "<br>";
$i++;
}
//Do While
do
{
$i++;
echo "The number is " . $i . "<br>";
}
while ($i<=5);
看不懂玩不透……@(汗)
emm,写给自己看的所以很笼统hhh@(吐舌)