忍者ブログ

カウンター

プロモーション

カレンダー

04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

AntinomyMy の実験室

   私のWEBアプリ実験室です!

ブログ内検索

楽天でお買い物

twitter

最新トラックバック

最新コメント

忍者アナライズ

ウェザーニュース

バーコード

本を買う

アクセス解析

Google+

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


  • 2024/05/17 14:52

function 内 global 変数を fopen の第一引数にするとき、バグが発生する謎の現象;x;

PHP の調べ物

何度やっても起こるのでメモしました・・・・

PHP Version 5.3.3-7 で確認しました。

function 内 global 変数を fopen の第一引数にするとき
バグが起こります。

--------------- インクルードするファイル ---------------
A.php として以下
<?php

$dir_img = 'images/';

);

?>

上は、OKな例、NGな例、全てに使っています。


-------------------------------------------------------------------------------------------------------------------------------
---------------- ①OKな例 ----------------
B.php として以下
<?php

include 'a.php';
test();

imageName ='image';
function test(){

//~~~ 略 ~~~

$imageRP = fopen ( strval( $dir_img . $imageName ), "w" );
fwrite ( $imageRP, 'testtest' );
fclose ( $imageRP );

}

?>
---------------- ②OKな例 ----------------
B.php として以下
<?php

include 'a.php';
test();

imageName ='image';
function test(){

//~~~ 略 ~~~

$imageRP = fopen ( strval( $dir_img ) . $imageName, "w" );
fwrite ( $imageRP, 'testtest' );
fclose ( $imageRP );

}
---------------- ③NGな例 ----------------
B.php として以下
<?php

include 'a.php';
test();

function test(){

//~~~ 略 ~~~

$imageRP = fopen ( $dir_img . $imageName, "w" );
fwrite ( $imageRP, 'testtest' );
fclose ( $imageRP );

}

?>
---------------- ④NGな例 ----------------
B.php として以下
<?php

include 'a.php';
test();

function test(){

//~~~ 略 ~~~

$imageRP = fopen ( strval( $dir_img ) . strval( $imageName ), "w" );
fwrite ( $imageRP, 'testtest' );
fclose ( $imageRP );

}

?>
-------------------------------------------------------------------------------------------------------------------------------


この4つの種類で動くのは①と②だけだと・・・・・思うのですが、
意味が分からなくて仕方ないのでした・・・・



多分、fopen の第一引数のバグなのかな?
ありえない・・・・・
見落とし?

本当に意味不明で、型を指定すると、特にLinux 環境で
動くことを度々経験しているので、Linux には何かあると思っています。


困ったから、動いている関数は、動いている状況からあまり
手を加えたくない・・・・・w



困ったなw


同様な経験をお持ちで、バージョンアップでバグが取れた以外の手で
直した経験がある方がいらっしゃいましたら、是非お教え下さい<_ _>


メモでした。


追伸:
そういえば、前は三角関数の関係に、値を受け渡す時に、
型を変換しないとLinux ではうまくいかなかった事もあった覚えが(謎。

拍手[0回]

PR


  • 2014/02/20 19:23

コメント一覧

  • お名前
  • Email

  • コメント

  • Vodafone絵文字 i-mode絵文字 Ezweb絵文字
  • パスワード
[PR]