2. calculator
D:/test/cakephp/app/controllers/pages_controller.php を作成
<?php class PagesController extends AppController { public $uses = null; public function display() { $result = ''; if (!empty($this->data['Culc'])) { /* eval じゃない方がいいな $list = array('add' => '+', 'subtract' => '-', 'multiply' => '*', 'divide' => '/'); foreach ($list as $k => $m) { if (isset($this->data['Culc'][$k])) { $arg1 = intval($this->data['Culc']['arg1']); $arg2 = intval($this->data['Culc']['arg2']); eval(sprintf('$result = %s %s %s;', $arg1, $m, $arg2)); break; } } */ $arg1 = intval($this->data['Culc']['arg1']); $arg2 = intval($this->data['Culc']['arg2']); switch (low($this->data['Culc'])) { case 'add' : $result = arg1 + arg2; break; case 'subtract': $result = arg1 - arg2; break; case 'multiply': $result = arg1 * arg2; break; case 'divide' : $result = arg1 / arg2; break; } } $this->set(compact('result')); } }
D:/test/cakephp/app/views/pages/display.ctp を作成
<?php echo $form->create('Page', array('url'=>'/pages/display')); ?> ARG1: <?php echo $form->text('Culc.arg1'); ?> ARG2: <?php echo $form->text('Culc.arg2'); ?> <?php echo $form->submit('add', array('name'=>'data[Culc][add]', 'div'=>false)); ?> <?php echo $form->submit('subtract', array('name'=>'data[Culc][subtract]', 'div'=>false)); ?> <?php echo $form->submit('multiply', array('name'=>'data[Culc][multiply]', 'div'=>false)); ?> <?php echo $form->submit('divide', array('name'=>'data[Culc][divide]', 'div'=>false)); ?> <br/> <br/> <br/> <br/> <?php if (isset($result)): ?> Result: <?php echo h($result); ?> <?php endif; ?> <?php echo $form->end(); ?>