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实例化的主要内容,如果未能解决你的问题,请参考以下文章