草庐IT

php - 如何检查类方法需要参数

例如有Foo类对象。不是try-catch表达式classFoo{functionBar($a){}}$foo=newFoo();if(hasRequiredParams(Object$foo,MethodName'Bar')){dosomething;} 最佳答案 您可以使用reflection执行此操作:classFoo{functionBar($a){}}$rc=newReflectionClass('Foo');$rm=$rc->getMethod('Bar');var_dump($rm->getNumberOfRequir

PHP 变量对象属性

我了解PHP中可变变量的概念。根据我对PHP中可变变量的理解,如下代码:$foo='hello';$$foo='world';echo$foo.''.$hello;将生成如下输出:HelloWorld但我发现很难理解可变对象属性假设我有一个名为foo的类,它具有如下单个属性:classfoo{var$r='Iamr.';}现在,创建类foo的实例并使用可变变量的概念编写以下代码:$foo=newfoo();$bar='r';echo$foo->$bar;将输出:Iamr.直到一切都很好,但是当我包含一个具有数组值的属性时,它对我来说变得一团糟。例如,我将另一个具有数组值的属性添加到cl

php - 为什么 in_array(1, array ('1:foo' )) 返回 TRUE?

这个问题在这里已经有了答案:PHPin_array()/array_search()oddbehaviour(2个答案)关闭6年前。1不在array()中,代码应返回FALSE而不是TRUE。你知道为什么吗?

PHP - 使用命名空间\{Foo, Bar}?

PHP什么时候有下面这个的?useNamespace\{Foo,Bar}我从thephppleague中发现了这个模式:namespaceAcme;classFoo{/***@typeAcme\Bar*/public$bar;/***Construct.**@param\Acme\Bar$bar*/publicfunction__construct(Bar$bar){$this->bar=$bar;}}classBar{//...}然后:有效吗?如果是,在哪里可以进一步研究? 最佳答案 是的,这是有效的。它是在PHP7.0中引入的。

php - 替换 () 之间的所有 "foo"

我的正则表达式代码有问题,问题是:我想替换所有“foo”值,但只替换“()”内的值。示例:tryfoofoo-foo(tryfooinside,foofoofoofoo)我想用“boo”替换括号中的所有“foo”字符串。 最佳答案 假设括号“有效”,您可以替换所有foo后跟),中间没有(:$str=preg_replace('/foo(?=[^()]*\))/','bar',$str);工作示例:http://ideone.com/xezU7另一种选择,也假设没有嵌套对,是匹配"(...)"标记并使用回调,但它可能使用过度的力:回调

php - 是否可以在同一个 if block 中运行多个 elseif block ?

$foo=1;functionsomeFunction(){if($foo==0){//-------Willtest,won'texecutebar();}elseif($foo==1){//--Willtest,andexecutebaz();}elseif($foo==2){//--Doesn'ttestqux();}elseif($foo==3){//--Doesn'ttestquux();}else{//-------------Doesn'ttestdeath();}//------------------Theprogramwillskipdowntohere.}假设ba

php - Javascript解码包含编码字符串的JSON字符串

我有以下PHP代码:$foo=newstdClass();$foo->test='helloworld';$bar=newstdClass();$bar->foo=json_encode($foo);$encoded_string=json_encode($bar);$encoded_string包含:{"foo":"{\"test\":\"helloworld\"}"}我想从javascript解析这个字符串(例如使用jQuery的$.parseJSON):vardata=$.parseJSON('{"foo":"{\"test\":\"helloworld\"}"}');conso

php - 为什么 < 和 > 需要在 preg_*() 模式中转义?

我已经跑了preg_quote('')检查这些字符是否需要在正则表达式中转义,令我惊讶的是,它们转义了:\.为什么这些字符需要转义?它们在正则表达式中的含义是什么? 最佳答案 在用于定义后视时具有重要意义((?匹配前面没有bar的foo)和>都用于命名子模式,如下所示:preg_match("/(?\d{3})-(?\d{3})-(?\d{4})/",$number,$m);//nowelementsoftheUSphonenumberarein$m['area'],$m['sub']and$m['num']因此,因为它们在与其他符

PHP/OOP 方法覆盖 DRY 方式

我很好奇是否有针对以下行为的“更好”设计:foo();//shoulddothestuffinFoo::foo()$biz=newBar();$biz->foo();//shoulddothestuffinBar::foo()andFoo::foo()$buz=newBaz();$buz->foo();//shoulddothestuffinBaz::foo(),Bar::foo(),andFoo::foo()//etc...本质上,我有一个基类Foo,它有一个方法Foo::foo(),其中包含一些应该始终运行的通用代码。我还有各种继承自Foo的子类,每个子类都有自己的特定代码,这些代

php - 在没有 php 类实例的情况下获取类名

我正在寻找以下php函数:classfoo{}echoget_class_special(foo);//returnsthestring'foo'php有没有在不创建类实例的情况下获取类名的函数? 最佳答案 关于php-在没有php类实例的情况下获取类名,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8531565/