php类与对象
❶ 为什么php类中声明一个对象属性会报错
- syntax error, unfinished class declaration 语法错误,未完成的类定义
- 1 changed line
- syntax error, unexpected 'new' 语法错误,未预期的 new
原因:
1. 语法错误,未完成的类定义
你需要提供 mysqli() 里写上初始化(实例化)类所需要的参数,比如:
$_mysqli = new mysqli('localhost','用户名','密码','数据库名');
2. syntax error, unexpected 'new'
将上面的变量定义与初始化代码分开来写:
Class ProviderDAO {
private static $_mysqli;
$_mysqli = new mysqli('localhost','用户名','密码','数据库名');
}
❷ php中的对象分为哪两种
得到一个对象的类型,使用gettype()函数:
<?php
echo gettype(1); // 输出integer
echo gettype(array()); // 输出array
得到一个对象是哪个类的实例,使用get_class()函数:
<?php
$o = new stdClass();
echo get_class(); // 输出stdClass
得到一个类或对象的方法和属性,要使用反射:
<?php
class MyClass {
public $var;
public function foo() {}
}
$ref = new ReflectionClass('MyClass');
$ref->getProperties(); // 会返回一组对象,用法参考PHP手册
$ref->getMethods(); // 会返回一组对象,用法参考PHP手册
$obj = new MyClass();
$ref = new ReflectionObject($obj);
$ref->getProperties();
$ref->getMethods();
❸ 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类和对象问题
$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 类/对象函数
你要问什么?
❻ php模块和类对象的区别
建议看看下面链接的网页,有问题再补充:网页链接
❼ 请问PHP中的面向对象,java面向对象一样吗。如果不一样,有什么区别(有好的回答的的话回加分的)
没有哪2种语言的面对对象做法是完全一样。所以回答是“不一样”。
由于各自语言的特性,细节区别非常多,不可胜诉。
总体上,php在设计对象模型式参考了java的设计,但改成适应php自身的形式。
php没有java的自动化class loader,在类的读取和对象创建上就要注意先后。php的自动读取要手动设置。
php由于自身是动态类型语言,变量本身的类型动态,就没有java的重载功能。这也导致类设计上的一些很大区别。
php的动态特性和具有自我反射能力,可以把方法名称当成“消息”发送,在运行时判断对象是否能接收消息,java的静态就不能直接应用这样的设计。
php6.x之前估计不会类似java的有名字空间或包管理机制。
php的对象可以动态地后添加属性增减数据,java是禁止这样做的。
php的方法名称还不区分大小写。
php的动态特性也就不需要模板泛型编程的特性。在java中泛型也占很重要的一部分。
等等等等
相同点,都具有final,抽象类,接口,变量可见度等语法。
总之,这些不同都是由语言特性和适用场合决定的
❽ php中类与对象的区别和关系是什么
举个例,类就好比人类,类有各种属性和各种方法,就像人类有姓名,年龄,身高,体重等属性,也有吃饭,睡觉,走路等行为(方法)。而对象,就是具体的一个人,是从人类这个类里实例化出来的一个对象,这个人具有人类的各种属性和方法。如果把上面这对话写成代码的话,就是
class 人类{
public $姓名, $年龄, $身高, $体重……
public function 吃饭(){
……
}
public function 睡觉(){
……
}
public function 走路(){
……
}
……
}
$人=new 人类;
$人->姓名='李雷';
$人->年龄=30;
$人->身高=175;
$人->姓名=75;
$人->吃饭();
……
这就是类和对象的区别和关系。
❾ php中如何找到对象所属的类
PHP内置了相关的函数可以满足你的要求。详细解答如下:
echoget_class($obj);//
不过实战中很少使用这种方式,因为获得类名并没有实际意义,只是在特殊情况下无法跟踪代码时临时调试一下而已。
实战用常用的方式是
if($objinstanceofCat)//$obj是Cat类的实例吗?
if($objinstanceofAnimal)//$obj是Animal类的实例吗?
希望以上回答能帮助到你,有用望采纳,有疑问请追问。
❿ PHP运用类和对象实现斐波那契数列
<?php
class demo {
private $_current = 0;
private $_next = 1;
protected function _getNext() {
$value = $this->_current + $this->_next;
$this->_current = $this->_next;
$this->_next = $value;
return $value;
}
public function getString($max) {
if($max < 1) return ''
$str = ''
while($next = $this->_getNext()) {
if ($next <= $max) {
$str .= ', ' . $next;
} else {
break;
}
}
return substr($str, 1);
}
}
不过这东西需要用对象这么麻烦吗...如果是老师教的...这水平...完全没有实用价值