首页 > php技术 > php文章> 详细内容
php文章 > 正文
PHP 面向对象之静态属性和静态方法
日期:2018-02-16 
  1. /* 
  2. //静态属性或静态方法不需要所在类被实例化就可以使用 
  3. //使用方法:类名::静态方法名(静态属性名) 
  4. //例子:static.php 
  5. */  
  6. class Math  
  7. {  
  8.    public static $PI=3.14; //定义静态属性  
  9.   
  10.    //public $PI=3.14; //静态方法不能调用非静态的属性  
  11.   
  12.      
  13.    //定义一个静态方法,求两个数中的最大值  
  14.   
  15.    public static function getMax($num1,$num2){ //static 关键字  
  16.   
  17.       return $num1 > $num2 ? $num1 : $num2;  
  18.    }  
  19.      
  20.    //定义一个静态方法,求圆面积  
  21.   
  22.    public static function getCircleArea($radius){  
  23.       //return Math::$PI * $radius * $radius;//也行  
  24.   
  25.       return self::$PI * $radius * $radius;//建议  
  26.   
  27.       //用self::调用当前类中的静态属性  
  28.   
  29.    }  
  30.      
  31.    // 求三个数中的最大值,用self::调用当前类中其它静态方法  
  32.   
  33.    public static function getMax3($num1,$num2,$num3){  
  34.       $num1 = self::getMax($num1,$num2);   
  35.       $num2 = self::getMax($num2,$num3);  
  36.       $num1 = self::getMax($num1,$num2);  
  37.          //或$num1 = Math::getMax($num1,$num2);   
  38.   
  39.       return $num1;  
  40.    }  
  41. }  
  42.   
  43.   
  44. //-----------------------------------------------------------  
  45.   
  46. $a=1;  
  47. $b=2;  
  48. echo "最大值:";  
  49. echo Math::getMax($a,$b);//注意使用方法, 类名::静态方法名  
  50.   
  51. echo "<br>";  
  52. //-----------------------------------------------------------  
  53.   
  54. $r=2;  
  55. echo "半径为{$r}的圆的面积为".Math::getCircleArea($r);  
  56. echo "<br>";  
  57. //------------------------------------------------------------  
  58.   
  59. $a=1;$b=2;$c=3;  
  60. echo "{$a},{$b},{$c}三个数中的最大值是" .Math::getMax3($a,$b,$c);  
  61.   
  62. ?>