【问题标题】:correctly using echo with array in php [closed]在php中正确使用带有数组的回声[关闭]
【发布时间】:2021-06-20 05:49:53
【问题描述】:

我是第一次学习php。在下面的代码中,我看到方法 2 中的 echo 在各种代码 sn-ps 中更常见。但方法 1 也打印出相同的正确答案。我的问题是为什么我应该使用方法 2。

<?php 
    
    $company[0]= " tweer" ;   
     
    $regtype[0]= "Limited";
     
    echo  "$company[0]  $regtype[0]<br />"; // method 1
     
    echo $company[0]." ".$regtype[0]."<br />"; //method 2
?>

输出:

tweer Limited
tweer Limited

我明白了。用于连接,但没有它我也可以得到相同的结果。

【问题讨论】:

  • 你可以选择任何一种方式,只是方式不同而已。
  • 我更喜欢方法1。这叫做“字符串插值”。大约 1000 年前,zend 指南在我认为的所有情况下都推荐了方法 2。这取决于您的偏好和代码库中使用的约定。如果您正在调用全局函数或引用常量,则需要方法 2,但如果您只使用变量和实例属性,请使用方法 1。
  • 方法 1 仅适用于双引号,因此一些 linter 会尝试使用单引号重构您的代码,而您将不知道为什么您的代码突然不起作用。

标签: php


【解决方案1】:

编码时往往有多种方法可以实现相同的结果。版本 2,使用连接运算符 ('.') 最好 [ref a]

echo $company[0]." ".$regtype[0]."<br />"; 

理由:

  1. 使用连接运算符使意图清晰,代码更具表现力。

  2. 版本 1 依赖于 PHP 字符串插值 [B]。许多其他语言没有等价物。所以使用连接可以更容易地在语言之间进行转换。它还使非 PHP 程序员更容易阅读代码。

  3. 版本 2 以更透明的方式将变量公开给像 trim [ref C] 这样的字符串函数

  4. 字符串插值仅适用于 heredocs 语法和双引号 [ref D]。这很容易忘记并导致语法错误。

注意:

附带说明。我已经标记了您的示例版本而不是方法,以防止与 OOP [ref E] 中的术语方法混淆,并且还作为函数的同义词(参见 Ref F]

参考文献

A. https://www.php.net/manual/en/language.operators.string.php

B. https://phppot.com/php/variable-interpolation-in-php/

C. https://www.php.net/manual/en/ref.strings.php

D. https://phppot.com/php/variable-interpolation-in-php/。 cmets 中也提到了@mojo allmighty 提出的问题

E. https://en.m.wikipedia.org/wiki/Method_(computer_programming)#:~:text=A%20method%20in%20object%2Doriented,any%20of%20its%20various%20consumers.

F。 https://www.php.net/manual/en/functions.user-defined.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-16
    相关资源
    最近更新 更多