質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

4回答

899閲覧

カンマ後の数値を反映させたいです。

hikaring0

総合スコア13

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/07/05 02:54

カンマ後の数値を反映させたいです。

はじめまして、現在TechAcademyでPHPを勉強しているhikaring0と申します。
現在PHPの講座の課題で氏名と年齢を入れると「苗字 名前です。〇歳です。」と出力される
プログラムを書いているところです。
氏名は何を入れても反映されるのですが、年齢が代入されず反映できなかったので質問させて頂きました。
初歩的なもので恐縮ですが、ご教授の程お願いいたします。

発生している問題・エラーメッセージ

田中 太郎です。 歳です …というように年齢が反映されません。 ("25歳です。"となるようにしたいのですが…)

該当のソースコード

PHP

1<?php 2 3class Animal { 4 public $name = " "; 5 public $age = " "; 6 7 function __construct($name) { 8 $this->name = $name; 9 } 10 11 function age(){ 12 $this->age = $age; 13 } 14 15 function say(){ 16 echo $this->name. "です。". $this->age. "歳です。". PHP_EOL; 17 } 18} 19 20// 以下の2行は動作確認のための記述しています。 21$animal = new Animal("田中 太郎", 25); 22$animal->say(); 23?>

補足情報(FW/ツールのバージョンなど)

Cloud9で行っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

コンストラクタに年齢の値をセットする処理がないのが原因かなと

php

1 function __construct($name, $age) { 2 $this->name = $name; 3 $this->age = $age; 4 }

投稿2019/07/05 02:57

sola-msr

総合スコア876

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hikaring0

2019/07/05 04:14

ご回答ありがとうございます。 とてもシンプルでわかりやすかったのでベストアンサーにさせて頂きました!
guest

0

__construct に引数が足りないのでは?

投稿2019/07/05 02:56

kei344

総合スコア69364

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hikaring0

2019/07/05 04:15

迅速なご回答ありがとうございます! おっしゃる通り引数が足りていませんでした。
guest

0

ageのセッタが用意されているようなのでこうしてみては

PHP

1class Animal { 2 public $name = " "; 3 public $age = " "; 4 function __construct($name) { 5 $this->name = $name; 6 } 7 function age($age){ 8 $this->age = $age; 9 } 10 function say(){ 11 echo $this->name. "です。". $this->age. "歳です。". PHP_EOL; 12 } 13} 14$animal = new Animal("田中 太郎"); 15$animal->age(25); 16$animal->say();

投稿2019/07/05 03:57

yambejp

総合スコア114572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hikaring0

2019/07/05 04:19

詳しくご回答頂き、ありがとうございます。 今後も精進して参ります!
guest

0

__construct()のときに$nameしかセットされていません。

__construct()のときに$ageもセットするか
say()の前にage()に25を渡してセットするかどちらかで対応可能です。

※ただ「初期化」とするとやはり__construct()が適当です。
age()には現在引数がありませんし、現在は用途がないのでは?

投稿2019/07/05 03:17

m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hikaring0

2019/07/05 04:18

ご回答ありがとうございます。 勉強になりました!
m.ts10806

2019/07/05 04:36

解決されたようで何よりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問