php实例化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php实例化相关的知识,希望对你有一定的参考价值。

$this->DBServer = $db_server; 那么形像的来描述 $this->DBServer 是什么样的东西? 子类调用父类中的某一个方法 都是用 $this->xxx 实例化来调用的吗?
不太明白!
能不能解释清楚点你说的?
$this->name=name;//这个也正确?

class pre
public function Recordcount($SQL)

$SQLType = substr(strtolower($SQL),0,6);
if($SQLType == "select")

$this->Record = mysql_query($SQL,$this->Conn);
$arr_nums = mysql_num_rows($this->Record);
return $arr_nums;




class news extends pre
public function shownews
$sql="...";
$arr = $this->Recordcount($SQL);//这不是调用父类中的方法吗?
return $arr;

有几个书写错误,现在已经订正!
$arr = $this->GetRecord($SQL);//这不是调用父类中的方法吗?
我跟你说过,什么叫继承,就是说子类拥有父类的所有成员(在可继承的情况下),你可以通过作用域连接符使用父类成员,也可以通过$this关键字(静态的,私有的不行!!!!!)!!!!!!!

怎样来认识面向对象编程:
给你举个例子:
class student
public $name;
public statics $age;
public function set_name($name)
$this->name=$name;//这是正确的
self::$name=$name;//正确
$name=$name;//这句错误

public function set_age($age)
$this->age=$age;//错误
self::$age=$age;//正确


//为什么会这样呢,也就是说,如果你要在类里面另外的成员,那么你就要通过
//$this关键字,或者作用域解析符,但是如果是静态成员,不能使用$this访问,来引用它,不能像普通的代码一样直接使用.
$this->name你可以这样理解,学生的名字,也就是说$this代表的就是类名

class boy_student extents students
//这个类扩展自students,也就是说有students类的所有成员,
//当然你也可以添加students没有的成员
$aadress;
:
:
:
//如果你要应用父类的方法:可以这样:
parent::set_name(....)
//当然这里涉及到的东西足足可以写成一本书,不是说有的父类成员都能子类访问,有些甚至连继承都不行,这里涉及到可见性的问题!


*********************************
$this->xxx 实例化来调用的吗?
*******************************
这不是实例化,什么叫实例化,就是说,刚才我们定义的是一个抽象的东西,就像学生,他是一个类别;
$zhangshan = new students();
这才是实利化,明白吗!
参考技术A 1.php可以在类里面实例化自身,因为在类的内部我们可以使用$this来实现对自身的引用。但是也许在某些特别的设计中,你需要实例化自身,那么确实是可以做到的,就像在类外部实例化一下,下面的代码展示了这一过程:
<?php
class test
var $b=’1′;
function in_self()
$a=new test();
echo $a->b;


$t= new test();
$t->in_self();
?>
2. PHP_对象的实例化
<?php

/*如何实例化对象

* $对象名=new 类名称()

*

*

*

*

*

*

*

* */

class Person



//成员属性

var $name;

var $age;

var $sex;

var $phone;

//成员方法

function say()



echo"我在说话";



function run()



echo"我在走路";



function eat()



echo "我在吃饭";



function work()



echo "我在工作";



function study()







class Phone



var $manufacturers;

var $color;

var $size;

function call()





function answerCall()





function sendMessage($person,$message)



$person->phone->recieveMessage($message);



function recieveMessage($message)



echo "接收的信息是:".$message."<br>";



function playMusic()







$p1=new Person();

$p2=new Person();

$p3=new Person();

$phone1=new Phone();

$phone2=new Phone();

$phone3=new Phone();

$p1->name="张三";

$p2->name="李四";

$p3->name="王五";

$phone1->manufacturers="nokia";

$phone2->manufacturers="semmens";

$phone3->manufacturers="samsung";

$p1->phone=$phone1;

$p2->phone=$phone2;

$p3->phone=$phone3;

$p1->phone->sendMessage($p2,"hello");

/* $p1->say();

$p2->eat();

$p3->run(); */

?>
3.
参考技术B 1.PHP可以在类里面实例化自身,因为在类的内部我们可以使用$this来实现对自身的引用。但是也许在某些特别的设计中,你需要实例化自身,那么确实是可以做到的,就像在类外部实例化一下,下面的代码展示了这一过程:
?php
class
test
var
$b=’1′;
function
in_self()
$a=new
test();
echo
$a-
b;


$t=
new
test();
$t->in_self();
?>
2.
PHP_对象的实例化
?php
/*如何实例化对象
*
$对象名=new
类名称()
*
*
*
*
*
*
*
*
*/
class
Person

//成员属性
var
$name;
var
$age;
var
$sex;
var
$phone;
//成员方法
function
say()

echo"我在说话";

function
run()

echo"我在走路";

function
eat()

echo
"我在吃饭";

function
work()

echo
"我在工作";

function
study()



class
Phone

var
$manufacturers;
var
$color;
var
$size;
function
call()


function
answerCall()


function
sendMessage($person,$message)

$person-
phone->recieveMessage($message);

function
recieveMessage($message)

echo
"接收的信息是:".$message."
";

function
playMusic()



$p1=new
Person();
$p2=new
Person();
$p3=new
Person();
$phone1=new
Phone();
$phone2=new
Phone();
$phone3=new
Phone();
$p1->name="张三";
$p2->name="李四";
$p3->name="王五";
$phone1->manufacturers="nokia";
$phone2->manufacturers="semmens";
$phone3->manufacturers="samsung";
$p1->phone=$phone1;
$p2->phone=$phone2;
$p3->phone=$phone3;
$p1->phone->sendMessage($p2,"hello");
/*
$p1->say();
$p2->eat();
$p3->run();
*/
?>
3.
参考技术C 给你举个例子吧:
比如说:现在有user.class.php
mysql.class.php
现在用户类有注册、登录等一系列的操作(要使用数据库类)
我们直接在user.class.php
中把数据库类给实力化了
这样就了可以达到你的那个效果了;
千万不要在将所有的方法放在一个类中,这样是不好做法,住好是一个类只对于他本身的方法;这样做的目的是让逻辑更加清晰,和降低服务器的资源消耗。
参考技术D new 一个 对象

php 实例化时父类以及__construct.php

<?php

class A {
    public $a = 1;
    public $c = 4;
    public function __construct() {
        $this->a = 333;
    }

    public function ttt() {
        $this->a = 3332;
    }

}

class B extends A{
    public $a = 3;
    public $b = 2;
    public function __construct() {
        $this->a = 3331;
    }
}

$test = new B;
$test2 = new A;
$test3 = 1;

以上是关于php实例化的主要内容,如果未能解决你的问题,请参考以下文章

php类实例化

php实例化

php 实例化 问题

php中如何在A类的方法里面 实例化B类,并调用B类的方法?

PHP能在类中实例化一个类吗

PHP面向对象(OOP)之实例化对象的方法