凡科网做的网站怎么样搜狗权重查询
1、PHP的面向对象与其他语言类似,但也有不同。
- PHP访问成员变量时,需要用“->”,而不能用“.”,访问成员函数时,需要用“->”,而不能用“.”。操作符“::”可以在没有任何声明实例的情况下访问类中的静态成员,必须用static定义。
- PHP用new实例化对象时,类名后面的括号可以省略。new className();new className都是可以的,当然构造函数是需要没有参数的。
2、在类中,用var定义成员变量,var定义的成员变量都是公开的。
3、创建子类时用extends继承父类。
一个类的例子如下:
<?php
class Site{//成员变量var $url;//用var定义成员变量,为公有变量var $title;//成员函数function setUrl($par){$this->url=$par;}function getUrl(){echo $this->url.PHP_EOL;}function setTitle($par){$this->title=$par;}function getTitle(){echo $this->title.PHP_EOL;}
}class subSite extends Site{var $category;function setCat($par){$this->category=$par;}function getCat(){echo $this->category.PHP_EOL;}function getUrl(){//方法重载echo $this->url.PHP_EOL;return $this->url;}function getTitle(){echo $this->title.PHP_EOL;return $this->title;}
}$taobao=new Site;//用默认的构造函数,可以不加括号
$google=new Site();$taobao->setTitle("淘宝");//只能用箭头访问成员函数
$google->setTitle("谷歌搜索");$taobao->setUrl("taobao.com");
$google->setUrl("google.com");$taobao->getTitle();
$google->getTitle();$taobao->getUrl();
$google->getUrl();
?>
输出如下:
4、 PHP自己实现构造函数时,用__construct。注意:前缀时两根下划线。
<?php
class myClass{function __construct(){//两根下划线print "构造函数\n";$this->name="myClass";}function __destruct(){print "销毁".$this->name."\n";}
}
echo "start".PHP_EOL;
$obj=new myClass();
echo "end".PHP_EOL;
?>
输出结果:构造函数在实例化对象时调用,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。
5、类中的方法可以被定义为公有,私有或受保护。如果没有设置这些关键字,则该方法默认为公有。
6、使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。
接口中定义的所有方法都必须是公有,这是接口的特性。
类中必须实现接口中定义的所有方法。
类可以实现多个接口,用逗号来分隔多个接口的名称。
<?php
interface iTemplate{public function setVariable($name,$var);public function getHtml($template);
}
class Template implements iTemplate{public static $var1=1;//静态属性public $var2=3;public $vars=array();public function setVariable($name,$var){$this->vars[$name]=$var;}public function getHtml($template){foreach ($this-vars as $name => $value) {$template=str_replace("{'.$name.'}",$value,$template);}return $template;}
}
$iT=new Template;
$iT->setVariable("golden states","curry");echo $iT::$var1.PHP_EOL;//静态属性用实例访问,有$符号
echo Template::$var1.PHP_EOL;//静态属性用类名访问$符号
echo $iT->var2;//箭头后面没$。
print_r($iT->vars);//访问数组
var_dump($iT->vars);
?>
7、PHP 对属性或方法的访问控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的。
- public(公有):公有的类成员可以在任何地方被访问。
- protected(受保护):受保护的类成员则可以被其自身以及其子类和父类访问。
- private(私有):私有的类成员则只能被其定义所在的类访问。
<?php
class myClass{public $public ='public';protected $protected='protected';private $private='private';function printHello(){echo $this->public.PHP_EOL;echo $this->protected.PHP_EOL;echo $this->private.PHP_EOL;}
}
$o=new myClass;
echo $o->public;
//echo $o->protected;
//echo $o->private;
$o->printHello();class subClass extends myClass{protected $protected="sub protected";function printHello(){echo $this->public.PHP_EOL;echo $this->protected.PHP_EOL;//输出子类的protectedecho $this->private.PHP_EOL;}
}
$o2=new subClass();
echo $o2->public;
//echo $o2->private;
//echo $o2->protected;
$o2->printHello();
?>