怎么给 PHP 对象动态添加方法

怎么给 PHP 对象动态添加方法,第1张

来个例子:

<?php

$a = new stdclass()

$a->name = function(){echo 'mylove'}

//调用的时候有点麻烦

$b = $a->name

$b()

后来我想想,这特么和下面这种写法是一样的:

<?php

$a = new stdclass()

$b = $a->name = function(){echo 'mylove'}

$b()

反正也不好玩啊。

使用php的常见问题是:编译php时忘记添加扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想删除目录重装,别说,php还真有这样的功能。

我没有在手册中看到。

如我想增加bcmath支持,这是一个支持大整数计算的扩展。windows自带而且内置,linux本类函数仅在

PHP

编译时配置了

--enable-bcmath

时可用(引号内是手册中的话)

幸好有phpize,

方法是,要有与现有php完全相同的php压缩包。我用的是php-5.2.6.tar.gz。

展开后进入里面的ext/bcmath目录

然后执行/usr/local/php/bin/phpize,这是一个可执行的文本文件,要确保它在系统中

会发现当前目录下多了一些configure文件,

如果没报错,则

Php代码

./configure

--with-php-config=/usr/local/php/bin/php-config

如果你的php安装路径不是默认的,要改。

如果没有报错,则make,再make

install

,然后它告诉你一个目录

你把该目录下的bcmath.so拷贝到你php.ini中的extension_dir指向的目录中,

修改php.ini,在最后添加一句extension=bcmath.so

重启apache.

这个得用JS来实现。因为PHP作为服务器脚本,和浏览器通信时是要刷新前端页面的。例如你要添加3个框,你得先把3提交给服务器,然后服务器再返回浏览器3个框的代码,这个过程费时,页面重新刷新会占用流量,并且服务器端的脚本一般是做逻辑处理和数据库 *** 作的,用他来做前端的页面呈现可以,但基本没人这样做,因为这样做很奇怪。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11377732.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存