php对象的类
⑴ php 中的 对象 类 属性 实例化 到底是怎么理解的啊·
我的理解
说一个人养了一只小狗(定义一个对象),把狗牵过来,摆在面前,让它确实存在(实例化)。
类,就是类别。人是一类,狗是一类。
属性就是人的特点,长头发、白皮肤、黑眼珠。
方法就是人会唱歌、会说话、会跑步跳跃等各种行为。
对象,就是类里面的一个个体。人类中的每一个人都是一个对象
⑵ php 中如何得到一个对象的类型
得到一个对象的类型,使用gettype()函数:
<?php
echogettype(1);//输出integer
echogettype(array());//输出array
得到一个对象是哪个类的实例,使用get_class()函数:
<?php
$o=newstdClass();
echoget_class();//输出stdClass
得到一个类或对象的方法和属性,要使用反射:
<?php
classMyClass{
public$var;
publicfunctionfoo(){}
}
$ref=newReflectionClass('MyClass');
$ref->getProperties();//会返回一组对象,用法参考PHP手册
$ref->getMethods();//会返回一组对象,用法参考PHP手册
$obj=newMyClass();
$ref=newReflectionObject($obj);
$ref->getProperties();
$ref->getMethods();
⑶ php面向对象 对象和类的区别
类实例化后是对象,对象是类的实例。
⑷ php类和对象问题
$this 的含义是表示 实例化后的 具体对象!
我们一般是先声明一个类,然后用这个类去实例化对象!
但是,当我们在声明这个类的时候,想在类本身内部使用本类的属性或者方法。应该怎么表示呢?
例如:
我声明一个User类!它只含有一个属性 $name;
class User
{
public $_name;
}
现在,我给User类加个方法。就用getName()方法,输出$name属性的值吧! 复制PHP内容到剪贴板
PHP代码:
class User
{
public $name;
function getName()
{
echo $this->name;
}
}
//如何使用呢?
$user1 = new User();
$user1->name = '张三';
$user1->getName(); //这里就会输出张三!
$user2 = new User();
$user2->name = '李四';
$user2->getName(); //这里会输出李四!
怎么理解呢?
我上面创建了两个User对象。分别是 $user1 和 $user2 。
当我调用 $user1->getName()的时候。 上面User类中的代码 echo $this->name ; 就是相当于是 echo $user1->name;
----------------------------------------->>>补充一下>>>
有static修饰的变量和函数不能出现$this
你看到的函数一定没有static
建议你系统的学习一下PHP,这样瞎猜是很浪费时间的
static $a1和self::$a1或者$a::$a1是一起使用的。
var $a1和$this->a1是一起使用的
class Abc{
static $a1;
}
class Abc{
var $a1;
}
两个$a1是不同的。
第一个用self::$a1或者$a::$a1引用,
第二个用$this->$a1或者$a->a1引用
首先static的函数里不能出现$this,只能是self
class Abc{
public static $a1 = "im a1!<br/>";
public static function go()
{
echo(self::$a1);
}
}
Abc::go();
?>
⑸ PHP中面向对象的类中,属性都允许哪些数据类型
对属性或方法的访问控制,是通过在前面添加关键字 public、protected 或 private 来实现的。由 public 所定义的类成员可以在任何地方被访问;由 protected 所定义的类成员则可以被其所在类的子类和父类访问(当然,该成员所在的类也可以访问);而由 private 定义的类成员则只能被其所在类访问。
⑹ PHP中,一个类的属性怎样定义为另一个类
当你声明一个类,你需要列出对象应有的所有变量和所有函数?被称为属性和方法图1中显示了一个类的构成. 注意在大括号({})内你只能声明变量或者函数. 图2中显示了如何在一个类中定义三个属性和两个方法.
以下为引用的内容:
class Name extends Another Class
{
Access Variable Declaration
Access Function Declaration
}
name = $name;
$this->password = $password;
$this->lastLogin = time();
$this->accesses++;
}
// 获取最后访问的时间
function getLastLogin()
{
return(date("M d Y", $this->lastLogin));
}
}
//创建一个对象的实例
$user = new User("Leon", "sdf123");
//获取最后访问的时间
print($user->getLastLogin() ."\n");
//打印用户名
print("$user->name\n");
?>
当你声明属性,你不需要指明数据类型. 变量可能是整型,字符串或者是另一个对象,这取决于实际情况.在声明属性时增加注释是一个好主意,标记上属性的含义和数据类型.
当你声明一个方法,你所做的和在类外部定义一个函数是一样的. 方法和属性都有各自的命名空间. 这意味着你可以安全地建立一个与类外部函数同名的方法,两者不会冲突. 例如,一个类中可以定义一个名为date()的方法. 但是你不能将一个方法命名为PHP的关键字,如for或者while.
类方法可能包含PHP中所谓的type hint. Type hint 是另一个传递参数给方法的类的名字. 如果你的脚本调用方法并传递一个不是类的实例的变量,PHP将产生一个”致命(fatal)错误” . 你可能没有给其它类型给出type hint,就像整型,字符串,或者布尔值. 在书写的时候, type hint是否应当包含数组类型仍存在争议.
Type hint是测试函数参数或者运算符的实例的数据类型的捷径. 你可能总是返回这个方法. 确认你强制让一个参数必须是哪种数据类型,如整型. 图3 确保编译类只产生Widget的实例
以下为引用的内容:
<?php
//组件
class Widget
{
public $name='none';
public $created=FALSE;
}
//装配器
class Assembler
{
public function make(Widget $w)
{
print("Making $w->name\n");
$w->created=TRUE;
}
}
//建立一个组件对象
$thing = new Widget;
$thing->name = 'Gadget';
//装配组件
Assembler::make($thing);
?>
除了传递参数的变量外,方法含有一个特殊的变量. 它代表类的个别实例. 你应当用这个来指向对象的属性和其它方法.一些面向对象的语言假设一个不合格的变量提交给本地属性,但在PHP中方法的任何变量只是在方法的一定范围内. 注意在User类的构造函数中这个变量的使用
⑺ php中如何找到对象所属的类
PHP内置了相关的函数可以满足你的要求。详细解答如下:
echoget_class($obj);//
不过实战中很少使用这种方式,因为获得类名并没有实际意义,只是在特殊情况下无法跟踪代码时临时调试一下而已。
实战用常用的方式是
if($objinstanceofCat)//$obj是Cat类的实例吗?
if($objinstanceofAnimal)//$obj是Animal类的实例吗?
希望以上回答能帮助到你,有用望采纳,有疑问请追问。
⑻ PHP中如何定义对象类型数组
应该是存到对象属性中吧
你把
public function setDepartment($department)
{
$this->department=$department;
}
改成
public function setDepartment($department)
{
$this->department[]=$department;
}
即可
private $department;
要不要改成
private $department=array();
其实无所谓
⑼ php 类 对象 实例
&是引用的意思,引用和和c指针差不多,但不能进行数学运算,可以认为引用是一个变量的别名
$assigned = $instance;
//$assigned 是个新变量,然后把$instance的值赋给$assigned
$reference =& $instance;
//$reference是$instance的引用,或者说$reference是$instance的别名,这两个其实是一个变量,地址都是一样的
$reference->var6 = '$assigned will have this value';
//因为$reference是$instance的引用(或别名),所以$instance->var6也变了
$instance = null;
//这个也是同理,$reference和$instance是一个变量
//$assigned一直没有变,因为$assigned和$instance($reference)是两个变量
⑽ php中类与对象的区别和关系是什么
举个例,类就好比人类,类有各种属性和各种方法,就像人类有姓名,年龄,身高,体重等属性,也有吃饭,睡觉,走路等行为(方法)。而对象,就是具体的一个人,是从人类这个类里实例化出来的一个对象,这个人具有人类的各种属性和方法。如果把上面这对话写成代码的话,就是
class 人类{
public $姓名, $年龄, $身高, $体重……
public function 吃饭(){
……
}
public function 睡觉(){
……
}
public function 走路(){
……
}
……
}
$人=new 人类;
$人->姓名='李雷';
$人->年龄=30;
$人->身高=175;
$人->姓名=75;
$人->吃饭();
……
这就是类和对象的区别和关系。