[PHP-users 5807] Re: PHPの変数の扱いについて
Naofumi Kondoh
php-users@php.gr.jp
Fri, 01 Mar 2002 23:53:53 +0900
ソフト工房の近藤です。
mots wrote:
....略....
> Function Aを呼ぶPHPスクリプト"C"があるとします。
> このスクリプトでは、Function Aを呼び、returnでデータをもらっております。
> そのデータをこのスクリプトの中でecho で出力しました。
> さらに、echo $conとしました。
>
> この場合、PHPスクリプト"C"に置いては$conの出力はできるのでしょうか?
こういう場合は、実行可能な短い例題を書いて頂いた方が
わかりやすいです。
なにをなさりたいのかよくわからないので、当て推量で。
環境: PHP 4.1.2 PostgreSQL 7.2 Linux TLJ WS 6.0
[例題1]
普段こういう書き方をしないので、スカラーでなくリソース
にも使えるのかちょっと自信なしです。一応動きましたが。
<?php
function A()
{
static $con;
$con = pg_connect('dbname=idb') or die('ERROR');
printf("%s<br>\n", $con);
return($con);
}
$con = A();
printf("%s<br>\n", $con);
$execid = pg_exec($con,'SELECT version();') or die('ERR');
echo pg_result($execid,0,0), '<hr>';
pg_close($con);
?>
[例題2]
クラスにする場合が多いと思います。私は専らこの方式。
<?php
class A_db_class
{
var $con;
function A_db_class()
{
$this->con = pg_connect('dbname=idb') or die('ERROR');
printf("%s<br>\n", $this->con);
}
}
$a = new A_db_class();
printf("%s<br>\n", $a->con);
$execid = pg_exec($a->con,'SELECT version();') or die('ERR');
echo pg_result($execid,0,0), '<hr>';
pg_close($a->con);
?>
> ※もしできるならば参照渡しが…。
参照渡し(call by reference)もできます。引数に & を
つけるだけです。マニュアルを見てください。
参照渡しは他の人がプログラムを直すときに間違いやすい
ので使う場所を限定してコメントをたっぷり入れます。
単に複数の値を返したいなら、配列で返すか、クラスにし
てプロパティーに入れておくかした方が間違いにくいです。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
(株)ソフト工房 近藤直文 Email: nkon@shonan.ne.jp
《 PostgreSQL+PHPソースコードジェネレーターデモGPL版 》
http://www.SOFTKOUBOU.co.jp/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/