【待望】PerlユーザのためのPHP入門 (601レス)
上下前次1-新
59: 03/03/01 19:09 ID:xu/mDseR(1) AAS
↓↓↓↓↓★ココだ★↓↓↓↓↓
外部リンク[html]:www.pink-angel.jp
60(1): 03/03/01 19:29 ID:??? AAS
>>50-51
Perlがデフォルトでグローバル変数なのに対して、
PHPでは、デフォルトでローカル変数だから。
#PHPscript
<?php
function foo(){
$a = 100;
print "$a,";
$a++;
}
省14
61: 03/03/01 19:56 ID:??? AAS
#PHPscript
<?php
$a = 999;
function foo(){
$a = 100;
print "$a,";
$a++;
}
foo();
print $a;
省3
62: 俺様 03/03/01 19:58 ID:gsC9ephA(1/2) AAS
>>60
(*゚▽゚ノノ゙☆パチパチ
Perlにおいていわゆるmyを付けた場合が
PHPでは標準になっています。
C言語などの場合はコンパイル時に
未定義(未宣言)の変数だ!ってエラーを出してくれるのですが、
PHPではそのまま初期値(文字なら空白、数字なら0)として
認識してしまうので注意しましょう。
結構すんなり受け入れられるのかなー?
普段からmyを使ったりしている人なら問題ないだろうけど
省3
63(1): 03/03/01 20:01 ID:Ddm3hU+C(1) AAS
Perlってなんて読むの?
64: 俺様 03/03/01 20:08 ID:gsC9ephA(2/2) AAS
逆にPerlの標準のようにグローバル(大域)変数として
扱いたい場合も書いておきましょう。
これはCやJavaとも違う仕様ですね。
関数内の最初でglobalと宣言します。
なお、PHPの設定でregister_globalsをonにすると
また違うようなのですが、デフォルトはoffで推奨となっているのでそれに従います。
<?php
$a = 999;
function foo(){
global $a; //これでグローバルスコープの$aを参照しますよと宣言している。
省11
65: 俺様 03/03/01 20:25 ID:UE12tRyA(8/12) AAS
Perlには静的(スタティック)変数が無かったと思うので
それについても書いておきましょう。
function foo(){
static $a=0;
print $a;
$a++;
}
for($i=0;$i<5;$i++){
foo();
}
省7
66(2): 生徒B 03/03/01 20:39 ID:??? AAS
perlの use strict; のような未定義変数をチェックする方法はPHPに無いのでしょうか。
67(1): 03/03/01 20:50 ID:??? AAS
{
my $static = 0;
sub foo () {
return ++$static;
}
}
68(1): 03/03/01 21:03 ID:b+i+15ud(1) AAS
だめだ・・・functionの時点でわからそ。
69(1): 俺様 03/03/01 21:27 ID:UE12tRyA(9/12) AAS
>>66
すまんが俺様は知らんな。
全ての定義済の変数を配列で返すような
関数ならあるが。
<?php
$def_arr= get_defined_vars();
//初期設定(_SERVER["SERVER_ADDR"]のようなもの)
//を含む全ての定義済みの変数の配列を得る)
$a=3;
$abc=10;
省7
70: 03/03/01 21:29 ID:??? AAS
71: 俺様 03/03/01 21:32 ID:UE12tRyA(10/12) AAS
>>67
なるほど。Perlでstaticを実現した例ですね。
まあ、PHPの場合はわざわざ自前で作らなくても
最初からstaticという命令が用意されているということです。
72: 俺様 03/03/01 21:35 ID:UE12tRyA(11/12) AAS
>>68
Perlをある程度理解していれば
わかるようにしたいのだが、
(Perlも未経験という場合はちょっと厳しいです。)
どこら辺がわからんだろうか?
とりあえずPerlのsubをfunctionに置き換えちゃえばOKだ。
73: 03/03/01 21:35 ID:??? AAS
74: 生徒B 03/03/01 21:56 ID:??? AAS
>>69
どもども。
ちょっと面倒ですね。
75: 03/03/01 22:00 ID:??? AAS
76(2): 03/03/01 22:12 ID:??? AAS
>>66
error_reporting(E_ALL);
でどうかな。
77: 03/03/01 22:16 ID:??? AAS
78: 生徒B 03/03/01 22:22 ID:??? AAS
<?php
error_reporting(E_ALL);
print $a;
?>
#<b>Notice</b>: Undefined variable: a in <b> (filename)
# </b> on line <b>3</b><br />
>>76
ありがとう。うまくいきました。
上下前次1-新書関写板覧索設栞歴
あと 523 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.008s