1
shiny PRO 最低等:isset
中级: filter_input 终极:开发框架集成自动处理 |
2
AlloVince 2015 年 6 月 7 日 $params = array_merge(['id' => ''], $_GET);
if ($params['id']) ... |
3
zhengkai 2015 年 6 月 7 日
$_GET += [
'id' => 0, 'page' => 1, ]; |
4
zhengkai 2015 年 6 月 7 日 这种方法一般不用在 _GET _POST 上,因为网页参数要做很多处理,没有特别声明的整数要禁止负数,字符串要确保是 utf-8 的,等等
一般用在参数上, += 不仅仅是比 array_merge() 简短,还能避免一个坑。如果你的 key 恰好是 0,1,2 这种的,+= 是覆盖,array_merge 的话会给你搞出 3,4,5,3 个 key 变成 6 个 key …… |
6
fbzl OP |
8
moro 2015 年 6 月 7 日
@
|
9
b821025551b 2015 年 6 月 7 日 via Android
empty配合三目
|
10
em70 2015 年 6 月 7 日
error_reporting(0)
世界不就清静了 |
12
yangmls 2015 年 6 月 7 日 |
13
fbzl OP @zhengkai 手册上写的
array (PHP 4, PHP 5) array — Create an array --- As of PHP 5.4.x you can now use 'short syntax arrays' which eliminates the need of this function. Example #1 'short syntax array' <?php $a = [1, 2, 3, 4]; print_r($a); ?> --- @b821025551b empty()会提示'PHP Notice: Undefined index: id',就是为了避免这个问题的,我才问的 @em70 问题描述中特别指明了,不能关闭报错 |
14
fbzl OP |
15
yangmls 2015 年 6 月 7 日 @fbzl 也是 laravel 的,一个处理 Closure 的函数
https://github.com/laravel/framework/blob/5.0/src/Illuminate/Support/helpers.php#L782 |
16
yangmls 2015 年 6 月 7 日
楼上的 merge 方案无法处理多重数组的情况,而 laravel 能够简单地用 array_get($arr, 'foo.bar') 来获取
楼上的 isset 问题也考虑到了,所以用的 array_key_exists |
19
micate 2015 年 6 月 7 日
自己实现一个类似 laravel 的 array_get() 方法是比较方便的,而且也不费电呀。
|
20
geeglo 2015 年 6 月 7 日
$id = empty($_GET['id']) ? 1 : intval($_GET['id']);
这样写不会报错的呀~你是不是记错了? |
22
lyragosa 2015 年 6 月 7 日
我是直接禁用所有报错信息,眼不见为净。
历史遗留没那么好修的 |
23
fbzl OP |
24
tcsky 2015 年 6 月 7 日
写一个全局的 array_get函数,用来处理数组.
|
26
skydiver 2015 年 6 月 7 日
优雅的方法就是不要直接读取全局变量$_GET $_POST,而是用框架提供的方法。
|