Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:128300 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by lists.php.net (Postfix) with ESMTPS id 8053F1A00BC for ; Tue, 29 Jul 2025 16:34:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1753806743; bh=DN9Kc106Ug9EuGGhDXNEuviDZs2rzsbABj6VGz2Ez8w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EuhI1u1hC+tHrKDs5CjIG43x88eRNs/u33QPcKroG+Qol7G9AUmC1U0s0Ze4xsBEY vZQ5iNKf+nnSJkCAfcdsr8kuAtprNjmKZ1tQNhxhtzZ9rk3u5nMMXR85b2wvZ3vQp2 y1ELtBJCZmYdGMob3A4BMIqob11BXhWCuPMt271UXV+P9zh1dk8gXj9df7jjFGKdzy LX27JZrPMgeabEsvhP/ukQTUmvw55bi+6dYUB2UXKEwRI1il4RUSakrddgMKoypLPP hWrUh0H3Y+HaxRZFsan89pR/xUYAUErUkAGn9ElcGza/04WM4okv073Hk1GYjvLKxh Qc3EQwb281HTg== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 4D1BA180083 for ; Tue, 29 Jul 2025 16:32:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: Error (Cannot connect to unix socket '/var/run/clamav/clamd.ctl': connect: Connection refused) X-Envelope-From: Received: from sonic.asd.mail.yahoo.com (sonic302-20.consmr.mail.ir2.yahoo.com [87.248.110.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 29 Jul 2025 16:32:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1753806839; bh=Ip5h5Zdmk1Hfej9PL+SwjtIzmBhgE7xExarNi643XtQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=qKVbue9U2UZQZkSEMJnT+fHkzvytCay3cPrWhZ3mywqmn/OBGmKRM6c1BD+aEG5xGO+lrN6VYwjfkwyiHl0LfwCnWe+MJV6RLaE+jnzj1jqKXdQx9LTcIhZyLzRY/TXOnYzz/C3IQTvMQa1S3lvmlO/yCy2ob35SXtqA1rZPLIJVdnZhb0sJj4felYf4kWFimD/uInuQkC5dinHMjCrO+IM7GbQtqr78QO2hl3ORGZ3ETAGJkQPBD3hNMnrw3KFShCdyuyglKLkddlhNOGAI6ZeMq4tHt+ELXGbJ0fI1SCoccE6+vFMLoUXDQsE4Tef/IL+/oiDF36v9HUj1IRb1cQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1753806839; bh=5YQJxnpgy912KUg6/HPFz8CH03aFzip503v86seBvbq=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=ZHzH+Es7EtxanmjgXHPvyPSSHtTIV5IhcUchTfyepEnAJc+9IJ0ADfIbvMo1b8abpa71GsP2/nDYG6tj3/6eWxYT/lLH9DQay6TjthJqaMGrZl5e3sLo2KxCb7Rc9ciLd1fWt3RwCcEoRUeMhUJfOsg0dX9d2BQsBSsvjES3NR7YqmVSNeb0dWOleq918TuuJEfph1kKwl+lxOmv9dt4u0iyQ0FT+FLPyE6g3Iw8ARBej3vP/n4xArz9+S2q8Fx8mfgPaVwmqA/lnEtpwfDnhz/KkGXYXbrjW608gkclVSoFTab80brT9zb2eSZ1OMAPLolvpdYOsYD7lmq3AtzsEA== X-YMail-OSG: MhGa1C0VM1k3DIX7OIijw6XXy_nkzSWYOCAmC8k2vBLDGuaa2NDcX1AjqS3JMlW m1VMa4O73H6kbETWHzs6dp39i4Dnd4SEFxOOe8aGSvhauNze4mG7aTkqmWURWH2TOBu052pU3Rtx XXyXXUkyWfF5mcKvCSoZkECm4jkCMH._9vSK0BZYzElYpa2fM3pNKOLsKADrr3C6XECDNmRyMtlD _ck3Et4U2P_NJIpL.mUrU2TZcAX3UrE4Tjub2V.LLPSwyGgr74ze_YVdEwtvP2tQSCHC.pl.WDQq 7WPuoJxIsiaxzfilhE71Rj1yhO7Jl4yt2s0KTH8PIfZEE7.tB6z_igswaIyeWDHR4R3bQ4_Rda9I 7Jje06AEBZK3kZpqwDU2dbGxZ.0_i1EXnPZog8RFw_7AXpmaTevy0.t22k60qmZCcCZ4MufWRbDt 2RfUk6GWJO1nyRgvdPFIqKiBDC1zUsKy17arWT4m2gIddvflbYABbWN3mNY8GSqX62luSDWWvsXh hKv4ZRt0FzkGWPPWM7VsGVF2igfmO0qMpuRb2eOtMnd5sIwpwqA7czKzGqBbzUMFAr5dIyuup0XF QxNyGqR2EgmYSB1NCWWW27XpdlWlOd7RlSfS51iUIRS3BrQwMp3h0.ExLCcjEowB8aQkJs6vSsti Xpd4VQG_hnpynfj9Nf8B6RVkHoyr8D2vXE7O.LTiWy5VR_Kl5sWKPnrS1Uhe50Kr78YfXU5LCbCU 4k4QpmbeGwbXzzVVFYsnl8Km3TV0VXrog0V_NPx5KD6NSLAKxVKM11lzt.tCBsQThWzDwcF555JZ Fz294giPq.rmRFlCcDZ4h6URY2ykHcILRVJqqYPEQ6D.H_simViCatxt465_dnJodN3uOZxcIY7M aA3Lytz7XjOsXSr4KFEz56vdCrP8oN5ASppCzsngia_g0MA5qZA4MIjWLuFYkyZzLeoXooanFN1I HaIbEJpKjTQ3C2lE3EcmToXnCktNnSbJoFcelFbNwMdpHpD4O6yEfA5_FPtBOYbKRx4a19Lb.tGg Nb.yFHkfbEoIWo8_NN0sjnxxjmhcGeeOuKCzPARsDyBWkjeVY_jdVYIcQ1O81s7CgzcEgsKVIrCg RcrQGO1z2CrSvSEx.ayWdXg5aQj4oM8o8NgLqD_WFDTNcZY37Ty20QjkLqiWzAm8mSbUrLKrEMu. 01WT7AKbgmkM2nJMrvNFcDnUDKmLUDX9q9kvcWrBZ4CJmhhxVozTCiCgfKT37_sYFL6sfMfHa1bB ZnxDiABlzI7OOR3EaYOGhYf4n2IrZt15Glx4IhlRuq5k3_CkvmwN9zFnzRpWzvlCYcq3vmd_0oKK UDH2rj7YxrxQM5aC1TUk_pzEFCIsf_eLV4Meo9X5JCj95zaEue.kaXVwxhMzVxHzAWjVv9YxdAat HaZSO5Q0tWgWJZF5OThwZJkTtbfvKzqfK.5BDBKgw1z5L4s7dd6Q6.7kEkNPcAIuBtmokq7GD_Hq QxOSFkSwJNz.9._QP6WZU3gM2KwbcmVNN09Gs7pgef6HVzas1.bZ0ETMUe7TtaPhrAJfHstnoAMb LMdGgGIABRi89lz1fsx7BVK4rI_fTJnHfwymPs.Bmleq_TEjxsTXSdbYuB3.w1k6p_xEO_V3ArlO U0t2oZviysqtyTBnBHqxvQVIjp.6IuT2xATCyc5OPN6XULBwWUME_xkZLHmkssiKYCwjYxABEZSi KvywYpYIb8mUKR3WLba.oGRct7lm3MKZBGePHZGD8195UlmGROnCYs4guSbFNECAOxFtJ2lRnQCw e1a128DEoGUyZeiCRXAIuIAiFW.yNUXi731JrwR6U5oGcLdVE58qsoRQONs2HxUvMJBwA6fSA2Fe LbNsBxFHdEaA14_kH1EQA8M0gaQsteGmXzAjpRDQ2KUZKg_inrtlvWY.U3UreTDReFcUSbi_iIgL FWtocsExrh3.IZQHI1wtdwdi729RMmBjW6Iq30wnOL8H6ki1vJGqeGu7G.pD4Lvk.bBmm8SgiD5R 9Cp6EU61T1ATS.XMrt8b8Lm1qp7tvYpi96UXc920PtBP.QG6_4e1Fz43JauFYYAXXg7hBJybAH7P Cnptgaxdudjpy91q7dkHLLtUJpMvph4bx1urnDyKsFfUxbp77Zk9zTldFpkIiy4C9E4Gx5Mr4Tw6 2YR48Pmq4DCooU_KU.Tu5Jsq9Z87Fpo40GABHdfhepQvPUoJJulRzKjG4pxwpX1Ozk4LW0diE4zR _UveTnVI32904_QrtMusfGqUTwargNAeuSIfs0J0dK8BSvKkFS3hq4qbVwu.W X-Sonic-MF: X-Sonic-ID: fb0e0b16-9043-4bcc-a3fa-ca37e41e1ef5 Received: from sonic.gate.mail.ne1.yahoo.com by sonic302.consmr.mail.ir2.yahoo.com with HTTP; Tue, 29 Jul 2025 16:33:59 +0000 Received: by hermes--production-ir2-858bd4ff7b-mp79t (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 1f536ab74d5a4fa8aee54ee80041355f; Tue, 29 Jul 2025 16:33:58 +0000 (UTC) Content-Type: text/plain; charset=utf-8; format=flowed Message-ID: <1753806102501.3239090264.2509829473@yahoo.de> To: larry@garfieldtech.com Cc: php internals Subject: Re: [PHP-DEV] [RFC] Add "is_representable_as_float()" and "is_representable_as_int()" functions Date: Tue, 29 Jul 2025 16:33:57 +0000 In-Reply-To: References: X-Mailer: Vivaldi Mail User-Agent: Vivaldi Mail/7.5.3735.56 Content-Transfer-Encoding: 7bit Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 From: hanskrentel@yahoo.de (Hans Krentel) On Tuesday 29 July 2025 18:04:06 (+02:00), Larry Garfield wrote: > On Tue, Jul 29, 2025, at 7:52 AM, Alexandre Daubois wrote: > > Hi internals, > > > > I would like to present the RFC to add the > > "is_representable_as_float()" and "is_representable_as_int()" > > functions. These functions provide developers with a way to check > > whether values can be losslessly converted between integer and > > floating-point representations. > > > > https://wiki.php.net/rfc/is-representable-as-float-int > > > > Best, > > Alexandre Daubois > > This looks lovely. > > Since only int, float, and string can ever be true, does it make sense to type the function parameters as `int|float|string` rather than `mixed`, to automatically exclude arrays, objects, and null? (All of which would always be false.) There is prior art and also I'd personally recommend to abide to mixed to not open new gaps while closing older. php --rf is_countable Function [ function is_countable ] { - Parameters [1] { Parameter #0 [ mixed $value ] } - Return [ bool ] } > > (I could probably argue either way on it, but my first inclination is yes; push the initial validation upstream. You should always know if a variable is a primitive or not, at the very least.) IMHO this is not a validation but a test function. So if you think one should know, you probably should not need this function at all. Btw. is_primitive() was not a thing last time I looked. It would be great though to have the combined test of is_scalar() and is_null() in a single function call. This is perhaps something for the line-up. Just my 2 cents -- hakre