php 有函数内部函数的定义吗?
classA{privateprop;publicfunctionfunc1(){functionfunc2(){//就是这个函数内部的函数}}}像这样的有吗?这个写法貌...
class A{
private prop;
public function func1(){
function func2(){
//就是这个函数内部的函数
}
}
}
像这样的有吗?这个写法貌似不对啊,虽然可以用第一次调用func1没问题,第二次调用func1就是重复定义func2,好像每运行一遍就注册了一遍这个内部函数啊。和别的语言不一样啊。
那有内部函数这种定义方法吗? 展开
private prop;
public function func1(){
function func2(){
//就是这个函数内部的函数
}
}
}
像这样的有吗?这个写法貌似不对啊,虽然可以用第一次调用func1没问题,第二次调用func1就是重复定义func2,好像每运行一遍就注册了一遍这个内部函数啊。和别的语言不一样啊。
那有内部函数这种定义方法吗? 展开
4个回答
推荐于2016-01-03
展开全部
可以这样写,但调用的时候有些诀窍
$obj = new A;
$F = $obj -> func1(); //这个调用只能出现一次
$obj -> func2(); //上面的调用了之后, 这里就可以直接调用内部函数了
更多追问追答
追问
我是希望能注册一个嵌套函数,作为局部函数来使用,到最后嵌套的变公有了,而且func1还变成一次性函数,只能调用一次。。。那我不如都放外头算了。。好郁闷啊。感觉php即时编译性太强了,完全覆盖了某些面向对象的特性啊,有利有弊么
追答
弄成局部函数简单啊,不过我也没怎么理解到你的意思, 你是意思是否这个局部函数只能在类class中调用?而不能在类对象外部调用?
如果是这个意思的话, 那就不要把函数嵌套,都放外头
只不过,在函数前面加一个 private
private 只能类内部调用
public 任何地方都可以调用
或者改成这样试试
class A{
private prop;
public function func1(){
if ( !function_exists( 'func2' ) ) {
function func2(){
//就是这个函数内部的函数
}
}
}
}
展开全部
没看明白,有没有代码?在函数里面参数是直接用的,在定义一个参数值就没了
求采纳为满意回答。
求采纳为满意回答。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
class A{
private prop;
public function func1(){
$this->func2();
}
public function func2(){
//就是这个函数内部的函数
}
}
private prop;
public function func1(){
$this->func2();
}
public function func2(){
//就是这个函数内部的函数
}
}
追问
就是没办法定义成类似局部函数的函数?只能拉到外面来?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
php 有很多标准的函数和结构。还有一些函数需要和特定地 php 扩展模块一起编译,否则在使用它们的时候就会得到一个致命的“未定义函数”错误。
例如,要使用图像函数比如 imagecreatetruecolor(),需要在编译 php 的时候加上 GD 的支持。或者,要使用mysql_connect() 函数,就需要在编译 php 的时候加上 MySQL 支持。有很多核心函数已包含在每个版本的 php 中如字符串和变量函数。调用 phpinfo() 或者 get_loaded_extensions() 可以得知 php 加载了那些扩展库。同时还应该注意,很多扩展库默认就是有效的。php 手册按照不同的扩展库组织了它们的文档。请参阅配置,安装以及各自的扩展库章节以获取有关如何设置 php 的信息。
例如,要使用图像函数比如 imagecreatetruecolor(),需要在编译 php 的时候加上 GD 的支持。或者,要使用mysql_connect() 函数,就需要在编译 php 的时候加上 MySQL 支持。有很多核心函数已包含在每个版本的 php 中如字符串和变量函数。调用 phpinfo() 或者 get_loaded_extensions() 可以得知 php 加载了那些扩展库。同时还应该注意,很多扩展库默认就是有效的。php 手册按照不同的扩展库组织了它们的文档。请参阅配置,安装以及各自的扩展库章节以获取有关如何设置 php 的信息。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |