From 4418c712a97749e7a44d2e17737534b739c17589 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AD=A6=E7=94=B0=20=E6=86=B2=E5=A4=AA=E9=83=8E?= Date: Mon, 12 Oct 2026 15:54:19 +0900 Subject: [PATCH] =?UTF-8?q?var=20=E3=82=92=E5=8E=9F=E6=96=87=E3=81=AE?= =?UTF-8?q?=E5=A4=89=E6=9B=B4=E3=81=AB=E8=BF=BD=E5=BE=93=20(2=E3=83=95?= =?UTF-8?q?=E3=82=A1=E3=82=A4=E3=83=AB)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reference/var/functions/intval.xml | 7 ++++++- reference/var/functions/settype.xml | 28 ++++++++++++++++++++++++---- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/reference/var/functions/intval.xml b/reference/var/functions/intval.xml index 37ec59ae45..261f895f3b 100644 --- a/reference/var/functions/intval.xml +++ b/reference/var/functions/intval.xml @@ -1,6 +1,6 @@ - + @@ -171,11 +171,16 @@ echo intval('1e10'), PHP_EOL; // 10000000000 echo intval(0x1A), PHP_EOL; // 26 echo intval('0x1A'), PHP_EOL; // 0 echo intval('0x1A', 0), PHP_EOL; // 26 +echo intval('1A', 16), PHP_EOL; // 26 echo intval(42000000), PHP_EOL; // 42000000 echo intval(420000000000000000000), PHP_EOL; // -4275113695319687168 echo intval('420000000000000000000'), PHP_EOL; // 9223372036854775807 echo intval(42, 8), PHP_EOL; // 42 echo intval('42', 8), PHP_EOL; // 34 +echo intval(42, 7), PHP_EOL; // 42 +echo intval('42', 7), PHP_EOL; // 30 +echo intval('1000', 11), PHP_EOL; // 1331 +echo intval('1ya', 36), PHP_EOL; // 2530 echo intval(array()), PHP_EOL; // 0 echo intval(array('foo', 'bar')), PHP_EOL; // 1 echo intval(false), PHP_EOL; // 0 diff --git a/reference/var/functions/settype.xml b/reference/var/functions/settype.xml index c37b4656be..3aab82851f 100644 --- a/reference/var/functions/settype.xml +++ b/reference/var/functions/settype.xml @@ -1,6 +1,6 @@ - + @@ -84,9 +84,9 @@ &reftitle.returnvalues; - - &return.success; - + + &return.true.always; + @@ -97,6 +97,14 @@ PHP 8.0.0 より前のバージョンでは、E_WARNING が発生し、 &false; が返されていました。 + + var が + 型付きプロパティ + へのリファレンスで、現在の + 型付けモード + では変換後の値をそのプロパティに代入できない場合、 + TypeError をスローします。 + @@ -153,6 +161,18 @@ var_dump($foo, $bar); "int" の最大値は PHP_INT_MAX です。 + + + 変換後の値は var に代入し直されるため、 + 通常の代入と同じルールが適用されます。 + var が型付きプロパティへのリファレンスで、 + 自動変換モードが有効な場合、変換後の値は + 可能であればプロパティの型に変換し直されます。 + そのため、プロパティの型は変わらず、settype は + &true; を返します。 + 変換し直せない場合は、TypeError がスローされます。 + +