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

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

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

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

Q&A

解決済

2回答

619閲覧

PHP 税込み関数引数が空の場合の判定処理について

nakayamaakg

総合スコア12

PHP

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

0グッド

0クリップ

投稿2021/06/10 15:49

閲覧頂きありがとうございます。

税込み関数にて以下の3つの機能をつけて表示させたいのですが
関数の引数を空にした時に⓷が実装できないのでアドバイス頂けませんでしょうか。

<実装したい機能>
⓵通常の値段に税込み価格にして'税込み価格は' .$price. 'です'表示
⓶引数が数値でないか判定して数値でない場合"引数が数値でありません"表示
⓷引数が空か判定して空の場合'引数は0あるいは空です'を表示

getTax($price = "なし")にして
デフォルト設定で引数が空時にecho '引数は0あるいは' . $price . 'です';
と表示されるようにしたいのですが、
($price = "なし")が効いているのか、「引数が数値でありません」と表示されてしまいます。

php

1 function getTax($price = "なし"){ 2 3 if(is_numeric($price)){ 4 $price = $price * 1.1; 5 echo '税込み価格は' .$price. 'です'; 6 7 }elseif(is_string($price)){ 8 echo "引数が数値でありません"; 9 10 }else{ 11 echo '引数は0あるいは' . $price . 'です'; 12 } 13 }; 14 15 getTax(); 16

引数のデフォルト設定をなくした以下のコードも試したのですが、「getTax() への引数が少なすぎます。」
とエラー表示されてしまい打開策が分からないため、ご理解方ある方いらっしゃいましたら教えて頂けませんでしょうか。

php

1  function getTax($price) { 2 3 if(empty($price)){ 4 echo '引数は0あるいは空です'; 5 6 }elseif(!is_numeric($price)){ 7 echo "引数が数値でありません"; 8 9 }else{ 10 $price = $price * 1.1; 11 echo '税込み価格は' .$price. 'です'; 12 }; 13 14 }; 15 16 getTax();

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

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

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

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

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

guest

回答2

0

ベストアンサー

PHP

1function getTax($price = null){

でいいんじゃないですか?

投稿2021/06/10 15:58

itagagaki

総合スコア8402

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

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

nakayamaakg

2021/06/10 23:51

コメントありがとうございます。 確かに、$price = nullのデフォルト設定にて、無事問題解決出来ました。 ありがとうございました。
guest

0

こんなかんじで。
ただ、ここまでするより itagagakiさんが回答してるように null をデフォルトにしとけば?

php

1function hoge(...$p) { 2 if (count($p) == 0) { 3 echo "引数を指定してください。\n"; 4 return; 5 } 6 $price = $p[0]; 7 if (!is_numeric($price)) { 8 echo "引数が数値でありません。\n"; 9 return; 10 } 11 echo '税込み価格は' . $price . 'です。' . "\n"; 12} 13 14hoge(); 15hoge("xxx"); 16hoge(100);

投稿2021/06/10 20:47

takasima20

総合スコア7458

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

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

nakayamaakg

2021/06/10 23:50

コメントありがとうございます。 count($p) の使い方を調べて、試してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問