一些新奇的玩意【php篇--持续更新】

人不进步就等于退步!

接触越多的人以及事就能学到更多的东西。

以下仅为本人记录的一些新奇的东西,不喜勿喷!

1.??运算符号,在新的项目中突然发现很多红线报错,还以为是错误!看了下,是??运算的问题,以前楼主没试过这样写过。故写了一个简单的测试代码:

代码:

1 $b = 0??5;
2 dump($b);

其中输出为5,当讲第一行代码中的0更换为1时候,输出为1;

2.?:运算符  这个三目运算符并不陌生,但是看到了大神们的杰作,才发现自己当初的真的是做多了很多步骤:

public function test(){
        $a = 0?:3;
        dump($a);
}

同理,输出为3,当将0更换为1时候,输出为1。

3.数组增加元素的新玩法:

之前楼猪在使用数组的时候,通常都是:

1     public function old_array(){
2         $arr = [];
3         $arr[] = 123;
4         $arr[] = 456;
5     }

这样新增的时候,之前还觉得听方便的,不用知道数组里面含有多少个元素,不需要管数组的索引。

但是看了一些大神的代码,感觉自己当初真的是循规蹈矩~~~:

 1 $arr = [
 2             1 => '123',
 3             3 => '456',
 4             4 => '789',
 5         ];
 6         dump($arr);
 7         $arr += [
 8             2 => '321',
 9             5 => '654',
10         ];
11         dump($arr);

这个样子看起来需要记住所以,但是在一些场合还是挺好用的,例如你需要知道那个中出错的代码对应哪一种错误信息,输出的结果为:

 4.php://

种类:php://stdin, php://stdout 和 php://stderr

官方:http://php.net/manual/zh/wrappers.php.php

用户获取一些输入输出流;例如获取表单的提交:

demo:

表单:

1 <form action="__SELF__" method="post">
2     <label>用户名:</label>
3     <input type="text" name="user" value="">
4     <label>密码:</label>
5     <input type="password" name="user" value="">
6     <input type="button" value="登陆" onclick="login()">
7     <input type="submit" value="提交">
8 </form>

后台获取:

1 public function table(){
2         if(IS_POST){
3             //way 1:
4             dump(file_get_contents('php://input'));
5             //way 2:
6             dump($_POST);
7         }
8         $this->display();
9     }

运行结果:

php://input 是个可以访问请求的原始数据的只读流。 POST 请求的情况下,最好使用 php://input 来代替 $HTTP_RAW_POST_DATA,因为它不依赖于特定的 php.ini 指令。 而且,这样的情况下 $HTTP_RAW_POST_DATA 默认没有填充, 比激活 always_populate_raw_post_data 潜在需要更少的内存。 enctype="multipart/form-data" 的时候 php://input 是无效的。

5.isset($field{num})

用来测试字符串的长度,听说效率更高~理解为类似字符串的索引吧。

6.

 

原文地址:https://www.cnblogs.com/gxkB/p/8317494.html