比如说:
立即学习“PHP免费学习笔记(深入)”;
以前写了十天学会ASP,十天学会ASP.NET什么的,现在想想再写个PHP吧,也算比较全了。 PHP的调试方法我这里就不说了,外面很多文章都有介绍,也有很多不同的组合。我这里暂时是以 Apache web server 和 MY SQL 作为WEB服务器和数据库,在php-4.3.3下的环境做的程序。当然要简单的构建和访问查看数据库 PHPMYADMIN 不可少。
482
<code>class A {
private $value = null;
public function __construct() {
$this->value = 1;
}
}
class B {
private $differentValue = null;
public function __construct() {
$this->differentValue = 1;
}
}
</code>A和B的作用完全不同, 他们两个没有办法合并。
<code>class C extends A {
public function display() {
echo "OK";
}
}
class D extends B {
public function display() {
echo "OK";
}
}
</code>C和D的内容又完全相同, 这样的情况有没有什么好的方法把C和D的内容只写一遍?
因为要向下兼容5.3的, 所以trait不能用~~~
比如说:
立即学习“PHP免费学习笔记(深入)”;
<code>class A {
private $value = null;
public function __construct() {
$this->value = 1;
}
}
class B {
private $differentValue = null;
public function __construct() {
$this->differentValue = 1;
}
}
</code>A和B的作用完全不同, 他们两个没有办法合并。
<code>class C extends A {
public function display() {
echo "OK";
}
}
class D extends B {
public function display() {
echo "OK";
}
}
</code>C和D的内容又完全相同, 这样的情况有没有什么好的方法把C和D的内容只写一遍?
因为要向下兼容5.3的, 所以trait不能用~~~
<code>class A {
private $value = null;
public function __construct() {
$this->value = 1;
}
}
class B {
private $differentValue = null;
public function __construct() {
$this->differentValue = 1;
}
}
/**
* @method void display()
*/
class C extends A {
private $handler = null;
public function __construct() {
parent::construct();
$this->handler = new E();
}
public function __call($name, $params) {
if ( method_exists($this->handler, $name) ) {
return call_user_func_array(array($this->handler, $name), $params);
} else {
throw new Exception('Method "'.$name.'" does not exists.');
}
}
}
/**
* @method void display()
*/
class D extends B {
private $handler = null;
public function __construct() {
parent::construct();
$this->handler = new E();
}
public function __call($name, $params) {
if ( method_exists($this->handler, $name) ) {
return call_user_func_array(array($this->handler, $name), $params);
} else {
throw new Exception('Method "'.$name.'" does not exists.');
}
}
}
Class E {
public function display() {
echo "OK";
}
}
</code>
http://3v4l.org/ns6q7
<code><?php
class A
{
public $name = 'a';
private $value = null;
public function __construct()
{
$this->value = 1;
}
}
class B
{
public $name = 'b';
private $differentValue = null;
public function __construct()
{
$this->differentValue = 1;
}
}
class CD
{
private $parent = null;
public function __construct($parent)
{
$this->parent = new $parent;
}
public function __call($name, $params)
{
if ( is_callable(array($this->parent, $name)) ) {
return call_user_func_array(array($this->parent, $name), $params);
} else {
throw new Exception('Method "'.$name.'" should be callable.');
}
}
public function __get($property_name){
if(isset($this->$property_name)) {
return $this->$property_name;
} elseif (isset($this->parent->$property_name)) {
return $this->parent->$property_name;
} else {
return null;
}
}
public function display()
{
echo "OK";
}
}
$c = new CD(new B);
var_dump($c->name);
</code>
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号