- 締切済み
echo (float)'1e2foo', PHP
echo (float)'15foo', PHP_EOL; echo (float)'15.33foo', PHP_EOL; echo (float)'1e2foo', PHP_EOL; echo (float)'foo', PHP_EOL; 以上参考書を転記しました 試しに echo '<pre>'; echo (float)'15', PHP_EOL; echo (float)'15.33', PHP_EOL; echo (float)'1e2', PHP_EOL; echo (float)'', PHP_EOL; echo '</pre>'; とfooを省きました、二つのプログラムの実行結果は 以下ですがと同じです。 15 15.33 100 0 一つ目の質問です。 なぜ、参考書はfooをあえて入れてのでしょうか? 二つ目の質問です。 1e2を1e3にすると結果が1000になります。 1eて何ですか!? 宜しくお願いします。
- Campus2
- お礼率47% (226/475)
- PHP
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kmee
- ベストアンサー率55% (1857/3366)
fooが入っているのは > 一件見ただの文字列のようなものでも、キャストにより、0以外の数値となります。 ということを理解させるためのものでしょう。
- maiko0318
- ベストアンサー率21% (1483/6970)
>1eて何ですか!? 1×10^2を、1e2、と書くという決まりになっています。 よって 1e3は1×10^3なので1000となります。
お礼
ありがとうございました。
補足
ありがとうございます。 http://oshiete.goo.ne.jp/qa/8516185.html 以上補足を追加しました。 宜しくお願いします。
関連するQ&A
- ブラウザ上に出せますか!?
echo (float)'15foo', PHP_EOL; // 15 echo (float)'15.33foo', PHP_EOL; // 15.33 echo (float)'1e2foo', PHP_EOL; // 100 (1e2) echo (float)'foo', PHP_EOL; // 0 以上ですが、 ブラウザ上に結果を出せますか!? もし、ブラウザ上に出すには、後!どんなプログラムが必要ですか!? 分かりません、宜しくお願いします。
- ベストアンサー
- PHP
- echo $a++とecho ++$a,の違いは?
<?php $a = 10; echo $a++,PHP_EOL; ------------------------------ <?php $a = 10; echo ++$a, PHP_EOL; ------------------------------- 以上の計算結果は同じですか? もし同じでしたら、また悩みが増えます。 よろしくお願いします。
- ベストアンサー
- PHP
- %php stringcast.php 100
<?php // stringcast.php if (!isset($argv[1])) { exit; } $num = $argv[1]; if ($num == 100) { echo "num is 100", PHP_EOL; } else { echo "num is not 100",PHP_EOL; } このプログラムを %php stringcast.php 100のように実行すると、引数の100は PHPには文字列型として渡されます。・・・ 以上参考書にあります。 作業の流れが分かりません。 %php stringcast.php 100とは!何のことなのでしょうか!? 以上宜しくお願いします。
- ベストアンサー
- PHP
- phpプログラムにてすぐecho出力が出ない。
phpにて、ログ解析を解析し、解析結果をCSVに加工して出力するものを 作成しました。 ログの解析には、解析したい単語で正規表現を使用し、 抽出しています。 正規表現は一行につき、多い場合で5つ実行されます。 echoでところどころに変数を出力するようにしています。 phpの<?phpのすぐ下にも startと出力するようにechoを入れています。 ログのボリュームにもよるのですが、 サイズが大きいログの場合、 解析プログラムを実行しても、最初のうちは、ふんともすんとも しないのです。 5000行のログでは、1時間たっても、実行されず、echoの標準出力が発行されず、 100行程度の場合、数秒でechoの標準出力が出力されます。 すこし、経つと、思い出したかのように 標準出力を吐き出します。 phpのプログラムにおいて、 実行する場合に、どのようなソースチェックが行われているのでしょうか?? すこし、わかりづらい質問ですが、 詳しい方、宜しくお願いいたします。
- ベストアンサー
- PHP
- PHPのstrpbrk関数ってひらがなを正しく認識しないのでしょうか?
PHPのstrpbrk関数ってひらがなを正しく認識しないのでしょうか? <pre> <?php $a=strpbrk("あいうえお","う"); echo $a; ?> </pre> のようにプログラムして実行すると、 あいうえお と表示されます。英字の場合 <pre> <?php $a=strpbrk("abcde","c"); echo $a; ?> </pre> とすると cde と正しい結果が得られるのですが。。文字コードも1通り試してみたのですが、うまくいきませんでした。 どなたか、ご回答お願いいたします。
- ベストアンサー
- PHP
- PHP_EOLを入れても改行しません。
お世話になります。 以下のような単純なプログラムでの結果です。 <?php print("the first line"); print(PHP_EOL); print("second line"); ?> 実行したときに、次のように改行して表示して欲しいのですが・・・・ the first line second line 結果としては、 the first line second line となり、改行しません。 PHP_EOLを使えるようにするために、 何かをインクルードしたり、 PHP.iniを設定したりと、 特別な条件があるのでしょうか? よろしくお願いします。
- ベストアンサー
- PHP
- $argv[1]) && $argv[1]・同じ
以下のプログラムですが! <html> <head> <meta "charset=utf-8" /> <title>論理演算子</title> </head> <body> <?php if(isset($argv[1]) && $argv[1]) { echo '与えられた引数は真です',PHP_EOL; } else{ echo '引く数が与えられていないか、与えられた引数が真ではありません' ,PHP_EOL; } ?> </body> </html> 以上のプログラムの実行結果は以下となりました。 引く数が与えられていないか、与えられた引数が真ではありません 以上の実行結果は”真でありません”と出ています。 $argv[1]) && $argv[1]・・・&&は理論積の、両辺は同じなのでtrueならばtrueの真だから、 "与えられた引数は真です"と出るのではないんでしょうか!? 以上よろしくお願いします。
- ベストアンサー
- PHP
- phpコールバック関数について
php初心者のものですが、コールバック関数(可変関数)についての質問です。 //引数の与えらえられた名前をもつ関数が存在すれば呼び出すための関数 function func_caller($name)(2) { if (function_exists($name)) { (3) $name(); //可変換数をして関数の呼び出し } } function foo() { echo 'foo call', PHP_EOL; } func_caller('foo'); //foo called(1) とあるのですが (1)の関数が(2)に呼ばれて$nameはfooが入ってて (3)が評価されまでわかるのですが次にどうなっていくのかわかりません。 どなたかわかる方いらっしゃいましたらどうか教えていただけないでしょうか? 何卒よろしくお願い致します。
- ベストアンサー
- PHP
- どうしたら確認ができますか!?
以下参考書をそまま入力しました。 ] --------------------------------------------------- 論理積と論理和では、2通りの表記方法がありますが、これは演算子の優先順位(注6)が違います。 (注意6)優先順位については3.2.3(P80)を参照 <?php $flag and foo(); if(isset($argv[1] && $argv[1] { echo '与えられた引数は真です',PHP_EOL; } else{ echo '引数が与えられていないか、与えられた引数が真ではありません' ,PHP_EOL; } この列では、引数が与えられているかをまずチェックし、与えられている場合はそれが真である かを調べます。論理演算子では、評価結果がわかった時点で演算結果を返します。これを短絡評価 といいます。短絡評価されるため、最初のisset($argv[1])が為である場合、次の$argv[1]の評価 は一切行われません(もし評価されてしまったならば、NOtic:Undefined offset:1となってしまい ます)。 たとえば、次の例では、$flagが為の場合では、関数foo()が呼ばれることはありません。 <?php $flag and foo(); ----------------------------------------------------------- 以上ですが、 これって、どうしたら確認ができますか!? xamppは働いています。 HTMLで試しましたがParseエラーがでました。 <html> <head> <meta "charset=utf-8" /> <title>論理演算子</title> </head> <body> <?php if(isset($argv[1] && $argv[1] { echo '与えられた引数は真です',PHP_EOL; } else{ echo '引く数が与えられていないか、与えられた引数が真ではありません' ,PHP_EOL; } ?> </body> </html> 以上の実行結果は 以下です。 Parse error: syntax error, unexpected '&&' (T_BOOLEAN_AND), expecting ',' or ')' in C:\xampp\htdocs\study.localhost\php.php on line 10 以上です。 よろしくお願いします。
- ベストアンサー
- PHP
お礼
ご回答誠にありがとうございました。 A:文字列のようなものでも、キャストにより、0以外の数値となります。 了解しました。 別件で、この場を借りてすみません・・・ 質問を占めた記憶はございませんが!質問が締まっていました!? 悪しからず