34行目のgetnum関数を実行すると、Uncaught Errorというエラーになる問題で困っています。
私の行った手順は以下です。
(1)関数に対しての引数をnullにしてみる
(2)関数に対しての引数を$serchNumとは別のからの変数にしてみる
(3)elseifの条件分岐の際、比較演算子を完全一致にしてみる
しかし、動作は変わらず以下のようになりました。
PHP Fatal error: Uncaught Error: Call to undefined function getnum() in /workspace/Main.php:33 Stack trace: #0 {main} thrown in /workspace/Main.php on line 33
私は、引数を指定しない場合はエラーが出ることはなく、返り値もないため出力がされないだけで正常に終わると予想していました。
下記にコードを記載します。
php
1<?php 2 class Employee{ 3 //プロパティの宣言 4 public $inputNumber; 5 public $employeeNumber; 6 public $name; 7 8 // コンストラクタ設定 9 // 引数として名前と年齢を受け取る 10 public function __construct ($inputNumber, $employeeNumber, $name){ 11 $this->inputNumber = $inputNumber; 12 $this->employeeNumber = $employeeNumber; 13 $this->name = $name; 14 } 15 16 function getnum($serchNum){ 17 return employeeNumber; 18 } 19 20 function getname(){ 21 return name; 22 } 23 } 24 25 $num = fgets(STDIN); 26 $objArray = array(); 27 28 for ($i = 1; $i <= $num; $i++) { 29 $inputArray = explode(" ", trim(fgets(STDIN))); 30 if ($inputArray[0] == "make") { 31 $objArray[] = new Employee($i, $inputArray[1], $inputArray[2]); 32 }elseif ($inputArray[0] === "getnum") { 33 $serchNum = $inputArray[1]; 34 getnum($serchNum); 35 36 }elseif ($inputArray[0] == "getname") { 37 38 } 39 } 40 // var_dump($objArray); 41 print_r($objArray); 42?>
やりたいこと
下記入力を受け取った際、1文字目の文字に対して出力を変えたい
入力される値
7 make 2742 mako getnum 1 make 2782 taisei getname 2 make 31 megumi
希望する出力
2742 taisei mako megumi
参考情報かアドバイスをいただければと思います。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー