Entradas en "estructuras de control"
Para cada uno de mis descuidos…
Un problema rápido en PHP, un lenguaje que todo el mundo dice conocer… y del que en realidad muy pocos tienen algo de idea:
<?php class Fruit { function __construct($name) { $this->name=$name; $this->stock['current']=array('value' => 3); $this->stock['cache']=array('value' => 3); } function setStock($new_stock) { foreach($this->stock as $key => $current_stock) { $current_stock['value']=$new_stock; } } } $fruits=array( "apple" => new Fruit("Apple"), "peach" => new Fruit("Peach") ); //Run! foreach($fruits as $fruit) { $fruit->setStock(8); echo $fruit->name." = ".$fruit->stock['current']['value']."\n"; } foreach($fruits as $fruit) { $fruit->stock['current']['value']=8; $fruit->stock['cache']['value']=8; echo $fruit->name." = ".$fruit->stock['current']['value']."\n"; }
Este código saca por pantalla:
Apple = 3
Peach = 3
Apple = 8
Peach = 8
¿Por qué en el primer foreach no funciona el setStock a 8? ¿Por qué en el segundo sí? Dad una explicación y proponed alguna solución para arreglarlo. El premio para el primero que acierte es, como de costumbre, es una botella de kilkenny 😉
Leer más