Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:119557 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 57710 invoked from network); 15 Feb 2023 13:04:09 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 15 Feb 2023 13:04:09 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 4269F180507 for ; Wed, 15 Feb 2023 05:04:09 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-ed1-f47.google.com (mail-ed1-f47.google.com [209.85.208.47]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Wed, 15 Feb 2023 05:04:08 -0800 (PST) Received: by mail-ed1-f47.google.com with SMTP id fj20so21983051edb.1 for ; Wed, 15 Feb 2023 05:04:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=E4XXhHkqTduLCTCWY6h8fyQm1Nkwgtxv6WQZLw4WIqw=; b=pRomQHJKqYIPvEeG1J14E0OKuw892cJNbkbpW82res6nhhaSr10byYIHldWAaKf8H7 anhFwfoy/zN/6CYlDMAaa6zSR7BSvCrI7+5Q8N7I1hriEKkrMzawRA220DdtAQASPgAv 4kBXiaCMynGOaBs0xd4EeyDOoSQ5BKGIAP1SoYgdOUGAIsPOJmcGaAYEun7mh7U+K12r GVeQxazC3QZUXGmUif6LZlgRTVuaHdOneRh6dv2hSK3Lm7c0L/Ab4mJF9t7749x9OYx3 93nZRLlanU+UVd0HcNK5YnOKb2GWNDfe5RiL04BDEeTLVdTslx56YhRyPOQGR/BApCDY ccAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=E4XXhHkqTduLCTCWY6h8fyQm1Nkwgtxv6WQZLw4WIqw=; b=molkDMfgBGBhRuVJg65ljOX5biTcaWzUl0Rmw6ESK8PHukoTgGhCof7dMCOFSnx9LW 2e+c6KRH4VP4AaBdcTOFSzMdtlNk7fdOVE5s4yCvjsEAasvqPCvhrp3zhhe3yCvOhn+r q37iq2imP31M6WZwASFunB2Xqp5KxvpL9HIzR2Y2aiMi4QLXNFOvNNA52w3VKb/CcVKw 9I2PM/uENvEe4JsBGO5DSdFEMuS/ZTvQALAt5QjB2l0JMs6/xO5mUyQaZkWTklA0lQ6d eMqcqGbvXC6VzyKft0DVuh2DLSg+NNpksx/m2nSkptR6XOXXa1+5vrj1v+z4igvasayG i+Jg== X-Gm-Message-State: AO0yUKVACKESP2wb6iZgWaPQJTR4Xgvkt3/WkF0RR7evu719Jwq4wEYZ Ik8baL8cU5v4kpzeKlpATN+UVq77JKLfEImnKQPuSGKJh2M= X-Google-Smtp-Source: AK7set+ve0pXpjBl84PWn4/0yRm9ivQb/kYKiverD/D8ZH+/vw1IGFvWEB45BfCrpWc9JjqsNkDodSHCg1C0YlhREeA= X-Received: by 2002:a50:931c:0:b0:49c:948d:e8ec with SMTP id m28-20020a50931c000000b0049c948de8ecmr1029048eda.2.1676466246820; Wed, 15 Feb 2023 05:04:06 -0800 (PST) MIME-Version: 1.0 References: <92c4514f-70e3-75c9-7084-9e29641e25e7@gmail.com> <7e86a2d2-b971-592c-64e3-e86c13b5be80@cubiclesoft.com> <84204896-F9CE-4186-8A72-573A0B46FC1D@gmail.com> In-Reply-To: <84204896-F9CE-4186-8A72-573A0B46FC1D@gmail.com> Date: Wed, 15 Feb 2023 14:03:39 +0100 Message-ID: To: internals@lists.php.net Content-Type: multipart/alternative; boundary="0000000000001ea8a005f4bcb71a" Subject: Re: [PHP-DEV] [RFC] Working With Substrings From: flexjoly@gmail.com (Lydia de Jongh) --0000000000001ea8a005f4bcb71a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, Very interesting topic! On which I have NO experience =F0=9F=99=88 Op wo 15 feb. 2023 om 08:02 schreef Rowan Tommins = : > On 15 February 2023 05:18:50 GMT, Rowan Tommins > wrote: > >My instinct was that it could just be a built-in class, with an internal > pointer to a zend_string that's completely invisible to userland. Somethi= ng > like how the SimpleXML and DOM objects just point into a libxml parse > result. > > To make this a bit more concrete, what I was picturing was that instead o= f > this example: > > str_splice($this->pagemap[$pagepos][0], $x2, $size2, $data, $x, $size); > > You would have something like this: > > // Wrap an existing zend_string in an object > $destBuffer =3D Buffer:: fromString($this->pagemap[$pagepos][0]); > // Similar, but also track start and end offsets > $sourceBuffer =3D Buffer::fromSubString($data, $x, $size); > // Now do the actual memory copy > $destBuffer->splice($x2, $size2, $sourceBuffer); > > > In some other languages every variable IS an object..... by default. As far as I understand, the code above is meant as internal. But what if any variable is a small object. Has this been ever considered? Or would it use too much performance? $oString =3D 'my text'; $oString->toUpper(); echo $oString; // 'MY TEXT' Greetz, Lydia --0000000000001ea8a005f4bcb71a--