命名空间 namespace 类 class
创建文件Hello.php,namespace是jikexueyuan:
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2015/6/28 * Time: 13:41 */ //命名空间 namespace jikexueyuan; class Hello { public function sayHello(){ echo 'Hello jikexueyuan<br/>'; } }
再创建文件Hello.php,namespace是jkxy:
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2015/6/28 * Time: 13:44 */ //命名空间 namespace jkxy; class Hello { public function sayHello(){ echo 'Hello jkxy<br/>'; } }
创建文件index.php:
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2015/6/28 * Time: 12:43 */ header("Content-type: text/html; charset=utf-8"); require_once 'jkxy/Hello.php';//require_once:调用一个文件 require_once 'jikexueyuan/Hello.php'; $h = new \jkxy\Hello();//创建类的实例 $h->sayHello();//通过实例访问内部功能 $d = new \jikexueyuan\Hello(); $d->sayHello();
用require_once调用文件jkxy/Hello.php和jikexueyuan/Hello.php,在通过实例化类访问类的内部功能
构造方法:会在创建类的实例的时候执行
创建文件Man.php
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2015/6/28 * Time: 13:56 */ class Man { /** * @param int $age 年龄//传入参数的类型 * @param string $name 名字 */ public function __construct($age,$name){ // echo 'Construct a man'; $this->_age = $age;//通过this记录下来 $this->_name = $name; } } public function getAge(){//外界可以访问 return $this->_age; } public function getName(){ return $this->_name; } private $_age,$_name; }
在index.php中用下面方式使用:
require_once 'Man.php'; $m = new Man(20,"Vito");//会在创建类的实例的时候执行 echo $m->getName(); echo $m->getAge();
成员方法 举例:
public function getAge(){//成员方法 return $this->_age; }
静态方法/静态常量/静态变量 在Man.php中添加如下代码:
public static function say_Hello(){//静态方法:主要用来描述类属性 echo "Hello PHP"; } private static $NUM = 0;//静态变量 const MAX_MAN_NUM = 200;//静态常量
在index.php中执行静态方法:
Man::say_Hello();//执行静态方法
在Man.php中添加代码,在index.php中用到静态变量和静态常量:
Man::$NUM++;//每创建一次就自加 if(Man::$NUM>Man::MAX_MAN_NUM){ throw new Exception("不能创建更多"); }
在index.php中使用静态变量和静态常量
for($i=0;$i<Man::MAX_MAN_NUM;$i++){ new Man(10,"Vito"); }