回答編集履歴
3
edit
answer
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
むしろ、前提が必要なlist()に割り当てるのは不適当な仕様ではないでしょうか。
|
14
14
|
普通に受け取って添え字0からのアクセスをしたほうが良いと思います。
|
15
15
|
一応[count()](https://www.php.net/manual/ja/function.count.php)でのチェックも入れておけば
|
16
|
-
想定の形
|
16
|
+
想定の形と担保もできなくはないです。
|
17
17
|
|
18
18
|
> あああなど、文字列を送信→Warning: checkdate() expects parameter 3 to be intエラー
|
19
19
|
|
2
edit
answer
CHANGED
@@ -1,5 +1,20 @@
|
|
1
|
-
|
1
|
+
> 空で送信→offsetエラー
|
2
2
|
|
3
|
+
listに割り当てるだけのデータができません。
|
4
|
+
```php
|
5
|
+
<?php
|
6
|
+
list($Y, $m, $d) = explode('-', "");
|
7
|
+
```
|
8
|
+
[list()](https://www.php.net/manual/ja/function.list.php)
|
9
|
+
|
10
|
+
nullでないこと、空でないこと など事前のチェックが必要。
|
11
|
+
省略できない引数がある機能を使うときは絶対に必要。
|
12
|
+
|
13
|
+
むしろ、前提が必要なlist()に割り当てるのは不適当な仕様ではないでしょうか。
|
14
|
+
普通に受け取って添え字0からのアクセスをしたほうが良いと思います。
|
15
|
+
一応[count()](https://www.php.net/manual/ja/function.count.php)でのチェックも入れておけば
|
16
|
+
想定の形でないと担保もできなくないです。
|
17
|
+
|
3
18
|
> あああなど、文字列を送信→Warning: checkdate() expects parameter 3 to be intエラー
|
4
19
|
|
5
20
|
|
@@ -14,6 +29,20 @@
|
|
14
29
|
<?php
|
15
30
|
function test(int $a){}
|
16
31
|
test("a");
|
32
|
+
```
|
17
33
|
|
34
|
+
上記の通り、checkdate()は引数が数字である前提で組まれている機能なので、その前提を全てクリアしたうえでのチェックをしないとWarningが消えることはないです。
|
18
35
|
|
36
|
+
想定しているフォーマットがあるのでしたらdate()でチェックしたほうがいいのでは?
|
37
|
+
|
38
|
+
```php
|
39
|
+
if($birth != null && $date !== date('Y-n-j',strtotime($birth))){
|
40
|
+
|
41
|
+
}
|
42
|
+
|
19
|
-
```
|
43
|
+
```
|
44
|
+
|
45
|
+
[empty()](https://www.php.net/manual/ja/function.empty.php)は0もtrueになるので注意が必要。
|
46
|
+
filter_input()利用しているのであれば、nullでなければフォーマットチェックに通しても差し支えないと思います。
|
47
|
+
|
48
|
+
参考にした記事も6年前の個人の記事なので、全然参考にできません。
|
1
edit
answer
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# 途中で送信してしまったので編集中
|
2
|
+
|
1
3
|
> あああなど、文字列を送信→Warning: checkdate() expects parameter 3 to be intエラー
|
2
4
|
|
3
5
|
|
@@ -5,9 +7,13 @@
|
|
5
7
|
> [checkdate()](https://www.php.net/manual/ja/function.checkdate.php)
|
6
8
|
checkdate ( int $month , int $day , int $year ) : bool
|
7
9
|
|
8
|
-
型宣言で引数の型が指定されているためのエラー。
|
10
|
+
[型宣言](https://www.php.net/manual/ja/language.types.declarations.php)で引数の型が指定されているためのエラー。
|
9
11
|
|
12
|
+
ミニマムコード
|
10
13
|
```php
|
14
|
+
<?php
|
15
|
+
function test(int $a){}
|
16
|
+
test("a");
|
11
17
|
|
12
18
|
|
13
19
|
```
|