关于PHP语法的笔记

因为一系列原因我又开始学php了……

习惯了erlang的一些特性,看书产生了想要流泪的冲动。

比如,php不但支持修改赋值,还有引用赋值。

$a="1"; $b = & $a;

$a="2";

此时b的值也会变成2。

比如,php支持静态变量的初始化static只对首次生效。

再比如,可变变量的使用。

$a="b";$b="111";

输出$a的内容是b,$$a的内容是$b 也就是111

还有,带着字母的的数字字符串组合,居然可以和整型数字直接运算(1.1abc+1=2.1abc)

也难怪以前老是有人高举php是最好的语言大旗……

--------------update----------------------------------------------------------------------

关于 ::与 ->的使用,还有self 和$this其实是包含关系

双冒号 引用类里面的静态方法或者属性,而且不需要实例化

 

self  在全局时使用,指的是窗口本身

this 指的是当前的函数本身

例:

 

class test {
static public $a;

const Abc = ‘1’;

    public function b() {}

}

//建立一个子类继承父类

class tests extends test {

    public function cs() {}

}

//调用父类的属性a

test::$a;

//调用父类的常量Abc

test::Abc;

//调用父类的方法b

test::b();

//调用自身的方法cs时,有两种方法

$this->cs();

self::cs();

 

PHP中的  ::  和  ?:  的区别

举例:

$a ?? 0  等同于 isset($a) ? $a : 0       

当$a被设置过,条件就成立,哪怕是被设为false,也算成立。

$a ?: 0  等同于 $a ? $a : 0

当$a的条件成立(不是false),返回$a,否则返回0

 

数组的重新组合:

$arr1= array(

 ['id'=>1,'task'=>1,value=>6],

 ['id'=>2,'task'=>1,value=>2],

 ['id'=>3,'task'=>2,value=>7]

);

$arr2 = [];

根据task分类生成新数组

foreach ($arr1 as $id => $v) {
  $arr2[ $v['task'] ][] = $v; //根据task进行数组重新赋值
}

 

posted @ 2020-07-24 16:41  南宫煎饼  阅读(86)  评论(0编辑  收藏  举报