php变量和数组还是直接代码?

php变量和数组还是直接代码?,php,coding-style,variable-variables,Php,Coding Style,Variable Variables,我正在使用代码点火器 我有一个相当大的项目清单,通过邮寄发送,一些将被设置,一些不会 我有两种方法来解决同一个问题 /*DYNAMIC CODING */ $fields = array( 'field1', 'field2', 'field3', 'field4', 'field5', 'field6', 'fiel'... ...); foreach($fields as $f) $$f = $this->input->post($f); /* OR L

我正在使用代码点火器

我有一个相当大的项目清单,通过邮寄发送,一些将被设置,一些不会

我有两种方法来解决同一个问题

/*DYNAMIC CODING */

$fields = array(
  'field1', 'field2',
  'field3', 'field4',
  'field5', 'field6',
  'fiel'... ...);

foreach($fields as $f)
  $$f = $this->input->post($f);

/* OR LITERAL CODING? */

  $field1 = $this->input->post('field1');
  $field2 = $this->input->post('field2');
  $field3 = $this->input->post('field3');
  $field4 = $this->input->post('field4');
  $field5 = $this->input->post('field5');
  $field6 = $this->input->post('field6');
  $field7 = $this->...

这两种方法都可以,我的问题是,是否有理由使用一种方法而不是另一种方法?

如果使用一种方法(例如eclipse),在IDE中使用变量自动完成时,文字编码可能会更好地工作


否则,无论您喜欢什么样式,在IDE中使用变量autocomplete时,如果您使用一种(例如eclipse),文字编码可能会工作得更好


否则,根据我的经验,无论您喜欢什么样式,都可以使用动态编码,因为这是我个人的偏好

如果你的偏好是其中之一,那么使用你觉得合适的任何东西,如果你是用其他人编辑代码的方式编码的,无论你选择什么,确保你添加

// a comment

来解释你的代码。使用这两种方法都会在处理时间上相差极小的毫秒,但从长远来看,理解代码并正确地对其进行注释将为您节省远远超过毫秒的时间

根据我的经验,使用动态编码,因为这是我个人的偏好

如果你的偏好是其中之一,那么使用你觉得合适的任何东西,如果你是用其他人编辑代码的方式编码的,无论你选择什么,确保你添加

// a comment

来解释你的代码。使用这两种方法都会在处理时间上相差极小的毫秒,但从长远来看,理解代码并正确地对其进行注释将为您节省远远超过毫秒的时间

文字编码可能有一点性能优势(因为动态代码首先生成一个数组,然后在其上循环)

但对我来说,动态代码更像我们说话和思考的方式。你不会说“今天我去了杂货店,然后我去了保龄球馆,然后我去了我朋友的家”,你会说“今天我去了杂货店,保龄球馆和我朋友的家。”此外,动态代码它的详细程度大大降低,从而减少了对大量代码进行检查的愚蠢需要(有了阵列,一旦你看到一个图案,你就知道里面会有什么),你可以立即看到发生了什么,它看起来就更好了


然而,这实际上取决于你如何编码。有些人完全不同意我说的话,有些人也会同意。如果你能更轻松地看到长的重复行,那就去做吧。但无论你做什么,不要忘记最重要的编码最佳实践:注释。

文字编码可能对性能有一点好处(因为动态代码首先生成一个数组,然后在其上循环。)

但对我来说,动态代码更像我们说话和思考的方式。你不会说“今天我去了杂货店,然后我去了保龄球馆,然后我去了我朋友的家”,你会说“今天我去了杂货店,保龄球馆和我朋友的家。”此外,动态代码它的详细程度要低得多,这减少了对大量代码行进行检查的愚蠢需要(使用数组,一旦看到模式,您就知道其中将包含什么),您可以立即看到正在发生的事情,而且看起来更好


但这实际上取决于你如何编码。有些人会完全不同意我所说的,有些人会同意。如果你能轻松一点看到长的重复行,那就去做吧。但不管你做什么,不要忘记最重要的编码最佳实践:注释。

你应该使用第一个选项,带有一个值数组和一个循环,sim因为这些变量将来可能会发生变化,更新数组比更新多行代码要简单得多


我还想您也需要在其他地方引用这些字段名。

您应该使用第一个选项,使用一个值数组和一个循环,因为这些变量可能在将来某个时候会发生变化,更新数组比更新多行代码要简单得多


我还想你也需要在其他地方引用这些字段名。

我不明白的是,创建所有这些变量的意义是什么?@Jani Hartikainen嗯,它们来自一个post请求……我必须假设你不直接使用post数组,是吗?…@Jani Hartikainen也接受n请注意,这些字段实际上并没有调用fieldx,例如,它们可以是
uid、uname、fname、lname、doby、dobm、dobd,…
这些名称只是示例,否则我将使用
for()
loop。好的,我认为它们只是任意命名的字段。如果它们实际上是以某种合理的方式命名的,那么这样做可能是有意义的。这个例子实在太局限了,无法进行更深入的讨论,但这不是问题所在,所以我就到此为止:)我不明白的是,创建所有这些变量的意义何在?@Jani Hartikainen好吧,它们来自一个post请求……我必须假设您不直接使用post数组,是吗?@Jani Hartikainen还注意到,字段arn实际上不称为fieldx,它们可以是
uid,uname,fname,lname,doby,dobm,dobd,…
这些名称只是示例,否则我只会使用
for()
loop。好的,我认为它们只是任意命名的字段。如果它们实际上是以某种合理的方式命名的,那么这样做可能是有意义的。这个例子实在太局限了,无法进行更深入的讨论,但这不是问题所在,所以我就到此为止:)如果大多数代码都是通过精确的短函数和命名良好的变量来表达的,我不同意注释的重要性。看到注释后的代码
$字段,我会很不高兴