クラス内での関数の呼び出しについて。 - PHPプロ!Q&A掲示板

2846

  • 0P

クラス内での関数の呼び出しについて。

質問日時 / 2010年8月26日 17:08    回答数 / 2件

Questioner:  osamuya  このエントリーをはてなブックマークに追加 

キーワード / class    function    nest   

 お世話になっております。PHPでクラスを使ってコードを書いております。
例えばですが、Perlなどでは関数(サブルーチン)の入れ子は無限にできるようになっていますし、PHPでも関数同士の入れ子はできるようになっておりまりますが、phpのクラスを使った関数(この場合はプロパティーというのでしょうか…?)の入れ子はどんな風に書けばよいでしょうか?
 いろいろな可能性はあると思いますが、クラス内に外にある関数を呼び出す方法、または同じクラス内のプロパティーを呼び出して使う方法が知りたいです。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┗A01NurseAngelいまいち言ってる意味がよくわからんが、 それっぽい
 ┗A01-1osamuyaありがとうございます! 正にこれでした。 $this->

回答一覧

並び替え:

A01
answererNurseAngel [8月26日 23:11] (最終編集:8月26日 23:14)

いまいち言ってる意味がよくわからんが、
それっぽいかんじで適当に。

  1. <?php
  2. function fuga(){
  3.  retunr 'bar';
  4. }
  5.  
  6. class testClass{
  7.  private hoge='foo';
  8.  
  9.  public function getHoge(){
  10.   return $this->hoge;
  11.  }
  12.  
  13.  public function getFuga(){
  14.   return fuga();
  15.  }
  16.  
  17.  public funtion stripslashes_deep($string){
  18.   if(is_array($string)){
  19.    $return = array();
  20.    foreach($string as $key=>$val){
  21.     $return[] = $this->stripslashes_deep($val);
  22.    }
  23.    return $return;
  24.   }
  25.   return stripslashes($string);
  26.  }
  27. }
  28.  
  29.  
  30. $test = new testClass();
  31.  
  32. $hoge = $test->getHoge()//'foo'
  33.  
  34. $fuga = $test->getFuga()//'bar'
  35.  
  36. $request = $hoge->stripslashes_deep($_REQUEST) //多重配列でも全部stripslashes()される


$thisが付く以外関数とあまり変わらない。

この意見に回答する

ツリーへ TOPへ

A01-1
replyerosamuya [8月26日 23:59]

ありがとうございます!
正にこれでした。
$this->で関数を呼んでくればよいだけだったのですね。。。

class zzzz() {
var $aaa = 'aaa';
function xxxx() {
// $re = yyyy(); ←ここで普通に関数呼び出してました。これじゃダメですね。
                $re = $this->yyyy();
return $re;
}
function yyyy() {
$return .= $this->aaa;
return $return;
}
}

という勘違いをしておりました。
ありがとうございます!

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
PHPのHTML埋め込み記述について
 このエントリーをはてなブックマークに追加 
A
$_POST["data"] == "男" ? $val = "checked" : $val = "" ; の意味は以下と同じです。 if($_POST["data"] == "男"){ $val = "checked; } e...

>>続きを読む

kende様のご指摘通り、三項演算子を使用する際には、コードの複雑度などを考慮する必要がありますね。書きやすさと共に可読性も追求したいところですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)