是否有必要将值放入变量?

时间:2017-10-04 08:14:42

标签: php algorithm

我被问及学生这个简单的问题而且我非常困扰,因为我无法为此提供足够的答案。我理解的是,变量只是一个容纳值的容器。除此之外,我无法向他们提供合理的解释。

示例:

我想检查一个年龄是否很小。通过使用变量,我将这样做:

<?php 
$age = 30;
if( $age > 18)
   echo 'You are no longer a minor';
?>

但是,如果不使用变量,我可以这样做:

<?php  
if( 30 > 18)
   echo 'You are no longer a minor';
?>

如果两个脚本产生相同的输出,那么为什么我们应该将它放在变量中,因为事实上,我们可以减少我们不使用变量的代码。而且,是否有必要将值放入变量?

是否会影响计算机的内存?

4 个答案:

答案 0 :(得分:2)

变量是一个“保持”一个值的容器,但是当变量保持的值在代码的不同执行之间变化时,它的功能就会出现。

在OP提供的示例中,$ age被硬编码为30,因此将其存储在变量中以供以后比较没有任何好处。

然而,这个略显人为的例子不太可能在现实生活中找到。相反,该页面可能会提示用户他们的年龄,然后将响应分配给变量$ age。

对每个最终用户执行相同的代码,并且根据他们的回复,页面会响应他们不再是未成年人,或者它将保持沉默。

例如:

#!/usr/bin/env php
<?php
$age = (int)readline("How old are you?"); // Prompt for a string and convert it to an integer
if( $age > 18)
     echo 'You are no longer a minor';
?>

因此回应:

$ ./askage.php
How old are you?30
You are no longer a minor
$ ./askage.php
How old are you?12
$

答案 1 :(得分:1)

这里的答案是任何有效用法中的年龄将来自某种形式的输入(用户输入,数据库选择,网络服务调用等),这些输入将存储在变量中以继续其余的逻辑。这里你的例子试图通过将变量设置为预定义值来伪造输入,这对于示例来说都是很酷和花花公子,但在正常情况下你会从某个地方读取该值,因此变量

答案 2 :(得分:1)

变量是算法中的占位符。以“求解X”的刻板数学案例为例。这里的X是算法的一部分,但是当你用X代替不同的值时,你不知道X的确切值和/或算法结果的变化。这同样适用于编程:

if (30 > 18)

嗯,好吧,这段代码肯定会某些东西,但它的作用是预先确定的。 30总是大于18,那么撰写此声明的重点是什么?你可以把它留下来。

if ($age > 18)

现在引入一个变量,其值在别处确定,并且该算法在运行时会根据$age的具体值产生不同的结果。如果您只是对$age的值进行硬编码......那么,这也不是非常有趣,但可能在现实世界中,$age的值将在运行时由某个外部因素确定。

答案 3 :(得分:0)

在使用任何变量的应用程序和程序中,完全取决于算法的性质,如果您收到的应用程序的输入本质上是动态的,那么最好使用变量但是如果输入静态&amp;每次迭代都会保持相同,然后您可以直接将其分配给您的逻辑。

Bellow是您需要变量的场景,以及您不需要变量的场景,我分享的场景很多,我们在日常生活中使用这些场景。

我们需要变量。

  • 将输入数据与任何相关数据或先前输入进行比较。
  • 输入数据的结果计算。
  • 修改任何商业案例的输入数据。

我们不需要变量的地方。

  • 比较在程序中预先声明的任何静态数据。
  • 启动任何具有明确价值的逻辑。
  • 所需的有限或特定迭代量。

这在大多数语言/脚本中很常见,希望这有助于理解变量的用例。