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

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

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

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

Q&A

解決済

6回答

1525閲覧

簡易的なphpのプログラミング

keys

総合スコア215

PHP

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

0グッド

0クリップ

投稿2016/07/26 08:01

###前提・実現したいこと

実行したらランダムに1〜10までの数字が出るようにしたい

その出た数字を参照して、次に出た数字がその数字より高かったら再度同じことをするプログラムを作りたい

例).3 ⇨ 5 ⇨7 ⇨4終了
5⇨3 終了

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

Fatal error: Can't use function return value in write context in /Users/r.sakai/Desktop/num01.php on line 10

###該当のソースコード

<?php function a(){ echo mt_rand(0,10). "\n"; } while (a() < 10) { echo a(), '<br>'; a()++; } ?>

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

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

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

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

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

guest

回答6

0

あやまったソース

php

1function a(){ 2 echo mt_rand(0,10). "\n"; 3} 4 5while (a() < 10) { 6 echo a(), '<br>'; 7 a()++; 8}

正しいソース

php

1function a(){ 2 return mt_rand(0,10); 3} 4 5$b = 11; 6while (($c = a()) < $b { 7 $b=$c; 8 echo $c . '<br>'; 9} 10echo $c . '<br>';

いろいろと問題があった

  1. a の戻り値
  2. ループ内で再度 a を呼び出しているため別の値が呼び出される。
  3. a という関数をインクリメントしている。

投稿2016/07/26 08:08

編集2016/07/26 08:44
asahina_dev

総合スコア610

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

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

0

ベストアンサー

思ったより早い段階で終わっちゃいますね。
Kosuke_Shibuya さんのパクリですがw

php

1<?php 2$arr[] = mt_rand(0, 10); 3while (($int = mt_rand(0, 10)) > end($arr)) { 4 $arr[] = $int; 5} 6echo implode('<br>', $arr); 7

投稿2016/07/26 09:12

編集2016/07/26 09:13
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2016/07/26 09:17

理解できる程度に直すなんて、お優しいw まあ、課題がこんなんだと、確かにつまんないなぁ… 学習意欲がわかないのも理解はできるw
退会済みユーザー

退会済みユーザー

2016/07/26 09:37

配列にぶっ込んで、最後に表示するってカッコいいですよね。 Kosuke_Shibuya さんの書かれたもので、ちょっと頭のなかだけだとよく分からなかったところがあったので、動かしてみました^^; 私は学習中なので、みんなのサンプル見れるのは楽しいですよ。 特にやったことない方法で解決しているのを見ると、刺激されます。
退会済みユーザー

退会済みユーザー

2016/07/26 09:52

動くだけのソースを書いたところで、なんの面白みもないですからね ^_^
退会済みユーザー

退会済みユーザー

2016/07/26 14:42

まだ思った通りのものがさくっと作れるレベルにないんで、ちゃんと動くだけで面白いですよw
退会済みユーザー

退会済みユーザー

2016/07/26 14:49

なるほど、一番楽しいときかもw
退会済みユーザー

退会済みユーザー

2016/07/26 14:54

そうですね。請負でやってるわけでもないんで、そういう意味でも一番楽しい気がします。ワリと学生っぽい感覚で出来てるはず。このサイトはイイ学び場ですよ。
guest

0

よくよくみると
a()++;
いらないと思います。
そしてループのなかの echo もおかしいですね。

php

1<?php 2 3function a() { 4 return mt_rand(0, 10); 5} 6 7$b = 10; 8while (($a = a()) < $b) { 9 $b = $a; 10 echo $a . '<br>'; 11// a()++; 12}

投稿2016/07/26 08:20

編集2016/07/26 08:29
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

エラーが問題であれば

php

1function a() { 2 return mt_rand(0, 10); 3}

かと

投稿2016/07/26 08:07

編集2016/07/26 08:14
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

asahina_dev

2016/07/26 08:10

改行コードも結合されてますよ。
退会済みユーザー

退会済みユーザー

2016/07/26 08:13

たしかに改行コードとらないと別のエラーがでますな。
guest

0

わざわざ関数にしないといけないでしょうか?

それなら、普通に変数に代入してそれでやっていけば、と思います。

投稿2016/07/26 08:04

Z-TALBO

総合スコア525

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

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

0

<?php function a(){ return mt_rand(0,10); } $b=-1; while (a() > $b) { $b=a();//値を保存しておく echo $b.'<br>'; } ?>

こんな感じでしょうか aメソッドで10までの乱数を返すようにして
b初期値を-1にして

aメソッドの値がbより大きかったらbに値を保存して表示する bに保存するのは前の値と見比べるためです
上記を繰り返す

一回も実行してないので完ぺきには動かないと思いますが、おそらく参考にすればできると思います

投稿2016/07/26 08:21

編集2016/07/26 08:35
yryuu

総合スコア151

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

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

asahina_dev

2016/07/26 08:30

そして aの戻り値は 0 - 10 なので -1 だとループにはいらない
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問