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;
}
}