phpでの->と=>と::の使い方とselfと$thisの使い方

7257 ワード

=> 
 key   value

$a = array(
  '0' => '1',
  '2' => '4',
);

echo $a['0'];
echo $a['2'];


-> 


class Test{
    function add(){return $this->var++;}
    var $var = 0;
}

$a = new Test; //
echo $a->add();
echo $a->var;


::
 

class Test{
    public static function test(){
    public static $test = 1;
   }
}

( :: )

Test::test(); test
Test::$test;  $test


, , new 。
, 。


==== selef=== $this ======

self , $this

static , static , 。
, 。

static , , 。

self:: 。

, 。

, , 。

$count , private static 。
, $count 。 $count 。
<?php    
class user  
{    
   private static $count = 0 ; // .    
   public function __construct() {    
       self::$count = self::$count + 1;    
   }    
   public function getCount() {      
       return self::$count;    
   }    
   public function __destruct() {    
       self::$count = self::$count - 1;    
   }    
}    
$user1 = new user();    
$user2 = new user();    
$user3 = new user();    
echo "now here have " . $user1->getCount() . " user";    
echo "<br />";    
unset($user3);    
echo "now here have " . $user1->getCount() . " user";    
?>    


, 。

: ::

<?php    
class Math  
{    
   public static $pi = 3.14;    
}    
// 3 。    
$r = 3;    
echo " $r <br />";    
echo Math::$pi * $r * $r;    
echo "<br /><br />";    
// 3.14 , 。    
Math::$pi = 3.141592653589793;    
echo " $r <br />";    
echo Math::$pi * $r * $r;      
?>    


, 。 ? PHP 。
Java , 。 , 。




::

Math , 。 。
, 。
static 。 PHP max() 。

<?php    
class Math  
{    
   public static function Max($num1, $num2) {    
   return $num1 > $num2 ? $num1 : $num2;    
   }          
}    
$a = 99;    
$b = 88;    
echo " $a $b ";    
echo "<br />";    
echo Math::Max($a, $b);    
echo "<br />";  
echo "<br />";  
echo "<br />";    
$a = 99;    
$b = 100;    
echo " $a $b ";    
echo "<br />";    
echo Math::Max($a,$b);    
?>  


, , self::
<?php    
// Math 。    
class Math  
{    
   public static function Max($num1, $num2) {    
       return $num1 > $num2 ? $num1 : $num2;    
   }    
   public static function Max3($num1, $num2, $num3) {    
       $num1 = self::Max($num1, $num2);    
       $num2 = self::Max($num2, $num3);    
       $num1 = self::Max($num1, $num2);            
       return $num1;    
   }    
}    
$a = 99;    
$b = 77;    
$c = 88;    
echo " $a $b $c ";    
echo "<br />";    
echo Math::Max3($a, $b, $c);    
?>




self:: 。

<?php    
//      
class Circle {    
   public static $pi = 3.14;    
   public static function circleAcreage($r) {    
   return $r * $r * self::$pi;    
   }    
}    
$r = 3;    
echo " $r " . Circle::circleAcreage($r);    
?>    



self:: ¥this

self:: ,


1. 。 self:: 。

<?php    
//    
class Circle {    
   public $pi = 3.14;    
   public static function circleAcreage($r) {    
       return $r * $r *
self::pi;     // , 。
   }    
}    
$r = 3;    
echo " $r " . Circle::circleAcreage($r);    
?>  



2. $this 。
PHP5 , $this 。
<?php  
// Math 。    
class Math {        
   public function Max($num1, $num2) {    
       echo "bad<br />";            
       return $num1 > $num2 ? $num1 : $num2;    
   }    
   public static function Max3($num1, $num2, $num3) {    
       $num1 = $this->Max($num1, $num2);     // $this 。
       $num2 = $this->Max($num2, $num3);     //
       $num1 = $this->Max($num1, $num2);     //       
       return $num1;    
   }    
}    
$a = 99;    
$b = 77;    
$c = 188;    
echo " $a $b $c ";    
echo "<br />";    
echo Math::Max3($a, $b, $c);    //    
?>  

3. self:: , 。

<?php    
// Math 。    
class Math {        
   public function Max($num1, $num2) {            
   return $num1 > $num2 ? $num1 : $num2;    
   }    
   public static function Max3($num1, $num2, $num3) {    
       $num1 = self::Max($num1, $num2);    
       $num2 = self::Max($num2, $num3);    
       $num1 = self::Max($num1, $num2);            
       return $num1;    
   }    
}    
$a = 99;    
$b = 77;    
$c = 188;    
echo " $a $b $c ";    
echo "<br />";    
echo Math::Max3($a, $b, $c);    
?>

---------------------------------------------
php this

class User {
   public $name;        function getName() {
           echo $this->name;
   }
}