当前位置:首页 » 编程语言 » php声明对象

php声明对象

发布时间: 2022-09-07 20:57:03

php面向对象问题class声明一个变量 $base; $this->base->cache['apps'];是怎样情况为什么属性下还有数组

你划线的这一句,是在对类的apps属性进行赋值,前面对base属性已经赋值过了,那个&$base的结构中可能有cache这样一个数组。

⑵ 关于PHP如何定义一个空对象

在PHP中,如果没有声明一个对象然后就对其属性赋值会出现警告提示,在此进行强制转换即可。
PHP中创建一个空对象代码如下:

声明空对象:
$empty_object=(object)array();
或者
$empty_object=(object)null;
把数组转换为对象:
$arr=array(‘a’,’b’);
$empty_object=(object)$arr;

⑶ 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创建一个类,在类中声明一个数组存放另一个对象,为什么无法调用数组中对象的方法

//新建一个类User用来存放这,三个数据
//结果放到一个User数组中,你看这可以吗?
//还是说要放到一个list中?

public class ObjectTest {

public static void main(String[] args) {
String[] id = new String[8];
String[] type = new String[8];
String[] username = new String[8];

User[] users = getUsers(type, id, username);
}

private static User[] getUsers(String[] type, String[] id, String[] username) {
User[] users = new User[type.length];
for (int i = 0; i < type.length; i++) {
users[i] = new User(id[i], type[i], username[i]);
}
return users;
}
}

class User {

public User(String id, String tpye, String username) {
this.tpye = tpye;
this.id = id;
this.username = username;
}

private String tpye;
private String id;
private String username;

public String getTpye() {
return this.tpye;
}

public String getId() {
return this.id;
}

public String getUsername() {
return this.username;
}

public void setTpye(String tpye) {
this.tpye = tpye;
}

public void setId(String id) {
this.id = id;
}

public void setUsername(String username) {
this.username = username;
}

}

⑸ php声明类的对象的时候加不加()有什么区别 $a=new peo(); $b=new peo; 上面的有什么区别啊

$a=new peo(); $b=new peo;
在php5以后的新版好像没有区别。都是新实例化一个peo对象,并调用默认的构造函数。。

记得在已经淘汰的PHP4中间$b=new peo;这么写可能算错。所以从来没这么写过。

⑹ PHP中如何定义对象类型数组

应该是存到对象属性中吧
你把
public function setDepartment($department)
{
$this->department=$department;
}
改成
public function setDepartment($department)
{
$this->department[]=$department;
}
即可
private $department;
要不要改成
private $department=array();
其实无所谓

⑺ php中既然可以直接用类名调用类中的方法和属性,那还声明对象干嘛 这不是多此一举吗

你的写法是 PHP 4 格式,只是PHP在向下兼容罢了。。

类方法的静态调用问题。。你是想知道,即然可以静态调用,为什么还要实例化对象。

从使用的角度来说,区别在于。这是一个对象。还是一个类。主要是思路上的区别。从书写的角度来说,也是各有优缺点。。

正如你看到的,静态调用可以省去实例化,而且全局有效。但是用起来,更像是自定义函数。很难体现出 OOP 思想所在。

实例化之后的变量是一个对象,有明确的方法和属性。从编程思路上来说更清晰。

如果你只是以这么简单的代码来举例,感觉当然都一样。那么我举个例子。

$mysql = new db_mysql(); //实例化一个MYSQL对象
$rows = $mysql->table('test')->select(); //MYSQL 对象查询一个表数据。
$mysql->debug(); // MYSQL 打印错误信息
以上代码全是 MYSQL 对象在操作。。

如果用全静态化的方法写。就得这么写:
db_mysql::table('test'); //设置一个数据表,是谁在控制。
$rows = db_mysql::select(); //查询数据,谁在查?
db_mysq::debug(); //打印错误信息,错误信息是谁发出来的?
以上代码对象完全不清晰。只知道是 MYSQL 的一些功能。

你还觉得这么写方便么?而且代码长起来会更混乱。思路都已经有些混乱了。如果你试着封装这么一个类,你会觉得更麻烦。

⑻ PHP的对象方法声明中指定形参类型是什么意思

function function_name( $a){
$b=$a*2;
return $b;
}
比如这个function ,$a 你就要给他指定类型为 整形或浮点型

⑼ php 的public作用

从PHP5.0版本开始,对象声明时需要声明对象属性和方法的可见性,public关键字表示属性或方法是公开可见的。

在PHP5.0之前未支持对象属性和方法的可见性定义,默认所有的属性和方法都是公开可见的,如以下的对象声明:

//例1
classObj{
var$name='Obj';
functiongetName(){
return$this->name;
}
}

而PHP5开始推荐写法为:

//例2
classObj{
protected$name='Obj';
publicfunctiongetName(){
return$this->name;
}
}

对于例1来说,实际上可以直接访问name属性,从而绕过getName方法,如

$obj=newObj();
echo$obj->name;

而对于例2来说,由于$name属性是protected(受保护的),因此必须使用getName方法才能得到$name属性的值。

同时这也是面向对象语言通用的一种声明方式。

public: 公开可见

protected: 对象内部可见 (该对象的子对象同样可以访问)

private: 对象自身内部可见 (不包含该对象的子对象,或者说private属性和方法不会被继承)

⑽ PHP中怎样创建一个空对象

1、打开php的编辑器,进入主页面,首先我们新建好一个php文件,然后写上注释内容,这是编程的良好习惯。

热点内容
中控大屏怎么看配置 发布:2025-01-13 13:11:33 浏览:912
linux多行删除 发布:2025-01-13 13:06:01 浏览:200
传奇3脱机脚本 发布:2025-01-13 13:05:08 浏览:751
java请求https 发布:2025-01-13 12:53:35 浏览:868
SQL限定符 发布:2025-01-13 12:46:19 浏览:145
挂号系统php源码 发布:2025-01-13 12:39:04 浏览:581
存储器通史是什么 发布:2025-01-13 12:38:11 浏览:405
可以捏的解压器怎么做 发布:2025-01-13 12:32:16 浏览:524
ios的java编译器 发布:2025-01-13 12:12:54 浏览:616
安卓手机如何看wifi使用人数 发布:2025-01-13 12:08:10 浏览:953