<?php header('Content-Type:text/html;charset=utf-8'); /*魔术方法: * 1,__get();当用户访问一个无权限或者不存在的属性的时候自动调用; * 2, __set():当用户对一个不存在或者无权限的属性赋值时调用的方法: * 静态成员的概念: * 1,静态成员所有对象共享,不属于某个具体对象用关键字static 声明; * 2,类常量也属于静态成员:const * 3,静态成员属性和方法使用self::来访问;静态属性名称要加$符号; * self::$name $this->name; * 4,在静态方法中我们只使用静态属性 * 5,在一个静态方法中不允许访问非静态城成员 * 6,在类的外部可以用对象来访问一个静态方法:但不能访问一个静态属性;静态属性保存的值不会消失; */ class Person{ private $_name='杨过'; protected $_age=40; function __get($proName='People'){ if($proName=='People'){ return $this->_name.'年龄是'.$this->_age; }else{ echo '<script>alert("非法访问")</script>'; } }function __set($proName,$proValue){ if($proName=='age'){ if($proValue>18 && $proValue<120){ return $this->$proName=$proValue; }else{ echo '<h2 style="color:red">'.$proValue.'是非法数据</h2>'; } } } } $obj = new Person(); echo $obj->age=120; echo $obj->__get().'<br>'; class Demo{ public static $count; public static function Add($count=0){ return self::$count +=$count; } public static function Chen($count=0){ return self::$count=$count*$count; } } if($_SERVER['REQUEST_METHOD']=='GET'){ if(empty($_GET['num1'])){ echo '<script>alert("数据不能为空")</script>'; }elseif(empty($_GET['num2'])){ echo '<script>alert("数据二不能为空")</script>'; }else{ $num1=(int)$_GET['num1']; $num2=(int)$_GET['num2']; $select=$_GET['slect']; if($num1<=$num2){ switch($select){ case 'jia': $total=0; for($i=$num1;$i<$num2;$i++){ $total=Demo::Add($i); } echo '<script>alert("累加的结果是:'.$total.'")</script>'; break; case 'C': $add=0; for($i=$num1;$i<$num2;$i++){ $add=Demo::Chen($i); } echo '<script>alert("累乘的结果是'.$add.'")</script>'; break; } }else{ echo '<script>alert("第二个数字要大于第一个数字")</script>'; } } } ?> <form action='demo_obj.php'> 请输入数字:<input type="text" name='num1'> 请选择:<select name="slect"> <option>请选择</option> <option name="slect" value='jia' selected>+</option> <option name="slect" value='C'>*</option> </select> 请输入数字:<input type="text" name="num2"> </form> <button onclick="add()" type="submit">计算</button> <script> function add(){ document.forms[0].submit(); }</script>