Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:104545 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 42811 invoked from network); 2 Mar 2019 23:11:43 -0000 Received: from unknown (HELO mail-oi1-f172.google.com) (209.85.167.172) by pb1.pair.com with SMTP; 2 Mar 2019 23:11:43 -0000 Received: by mail-oi1-f172.google.com with SMTP id u128so914129oie.2 for ; Sat, 02 Mar 2019 11:59:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=message-id:date:from:to:subject:user-agent; bh=Cu8SNsjytjQRKTEmAoKtKRqyjd7gHYEMhkxUYK7T2b0=; b=GOxpIh8ME8WQ5w4ywNJqWUJb5pxTog3JJ0860S7ZgDuw0xq9tqlTRgmB8NP+x3ok2v xDykPK/lc3oggRSr6Fslcsi/iFvlG2ntnagA3JorKwOI3uWml26gLDbNiNma5UtGl75N +eHNUYpDllRmjo4SwATNrkCKHLPGv1mWeu2Y7tI1edrVLk2NpdVlrfVYWjv4ejou1T73 GNU5nxJeQ1UNgb73qVtoEHfnZwv2SMAFiek+G4qae7HtAjIxPWwcHSguMvsleA74ucu3 qQw8mW/YwOCL7Em9jlDGFkGjDOiSe1lEarXFWZls4tKzB8qXCnlOuejDdf2ZSeqf5lhl qeaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:date:from:to:subject:user-agent; bh=Cu8SNsjytjQRKTEmAoKtKRqyjd7gHYEMhkxUYK7T2b0=; b=fLsCtNOj/JW3BY2xZ2kj92cNIYVR4wvauJS+6ZKpzfn9Z1UiFxDBYxrroA/LVws9vP wW8UjMFr7eItwfkhzgaVnx01AJxZToYwizVvF2erf7vpwYhnKp7sJm+Q3p4f9+NPw9WG wIMiPJWpi/DvUd103l57B5bXcA2IfjF96gc+5gQmbMDTFC4QBzmAPi6CdDVi5sK7S66z wJB3fY+55kx/nVegGDgGKe/JP9DsNTZsuvdWQvuUPg4m7n5rE5rTJv/EHRJFHN2M//Tw jSLg1Nrqosqv0X/UCITMstTLHI2eqlRF89a8AWYv7hYzBS1fiJgr9GC0Y6YiRF0IIj3l Kx/g== X-Gm-Message-State: APjAAAWVeCASBZ7aJPNs/25BUMalD3SfH3xki5EwN7A/nW4EjFW8xoHB BndyE21xzXSyxMYqvaB13v2y94CEFt4= X-Google-Smtp-Source: APXvYqwjXZQojqlcTWsXh8edof/Zk1yAOR29FvcrUCSOWeb2HmzjmFIfDdhW/e8XzVs+CEKLyoKz4Q== X-Received: by 2002:aca:be82:: with SMTP id o124mr7498756oif.166.1551556750149; Sat, 02 Mar 2019 11:59:10 -0800 (PST) Received: from wms ([2605:6000:9fc0:56:2199:655:be99:2224]) by smtp.gmail.com with ESMTPSA id 88sm675206otx.57.2019.03.02.11.59.09 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 02 Mar 2019 11:59:09 -0800 (PST) Message-ID: <5c7ae08d.1c69fb81.29486.402d@mx.google.com> Date: Sat, 02 Mar 2019 11:59:09 -0800 (PST) X-Google-Original-From: Steven Penny To: internals@lists.php.net Content-Type: text/plain; charset=utf8; format=flowed User-Agent: Tryst/2.8.0 (cup.github.io/umber/tryst) Subject: print with newline From: svnpenn@gmail.com (Steven Penny) with PHP, several methods are available to produce output: echo "hello world\n"; print "hello world\n"; print_r("hello world\n"); var_export("hello world\n"); However all these methods have something in common: they do not produce their own newline. With each method, the user is required to provide a newline with "\n", PHP_EOL or similar. This is bothersome because many other programming languages offer such a method. For example Python: print('hello world') Perl: use feature say; say 'hello world'; Ruby: puts 'hello world' Lua: print 'hello world' Even C: #include int main() { puts("hello world"); } Out of the above examples, I would say Perl and Ruby are most similar to PHP, in that they also have the "print" method: $ perl -e 'print 2; print 3;' 23 $ ruby -e 'print 2; print 3;' 23 However even in this case, "print" can be made to produce a newline by default: $ perl -e '$\ = "\n"; print 2; print 3;' 2 3 $ ruby -e '$\ = "\n"; print 2; print 3;' 2 3 My request would be one of the following: 1. Modify one or more of "print", "print_r", "var_export" such that they produce a newline by default 2. Modify one or more of "print", "print_r", "var_export" such that they have an argument similar to Python "end" that controls what follows the input, if anything: https://docs.python.org/library/functions.html#print 3. Add a new method, perhaps "echoln", "println", "say" or similar, that outputs a newline by default 4. introduce a new variable, perhaps "$OUTPUT_RECORD_SEPARATOR", "$ORS", "$\" or similar, that controls output record separator I understand that some of these methods are old and unlikely to change, but if I do nothing then I have only myself to blame.