小编use*_*841的帖子

我可以在PHP中使用class属性设置默认方法参数吗?

我正在使用PHP 5.2.6.我希望方法中的参数有一个默认值,但似乎我有点太聪明了.

class属性blnOverwrite是默认的,可以在类的其他地方设置.我有一个方法,我想让它再次设置,但不能覆盖现有的值.我尝试这个时收到错误:

public function place( $path, $overwrite = $this->blnOverwrite ) { ... }
Run Code Online (Sandbox Code Playgroud)

我必须这样做吗?

public function place( $path, $overwrite = NULL ) { 
    if ( ! is_null($overwrite) ) {
        $this->blnOverwrite = $overwrite;
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

php default

15
推荐指数
2
解决办法
6400
查看次数

如何验证PHP数组的结构?

是否有一个函数来确保任何给定的数组符合特定的结构?我的意思是具有特定的键名,可能是值的特定类型,以及任何嵌套结构.

现在我有一个地方,我想确保过去的数组有某些键,一对持有某种数据类型,一个子数组有特定的键名.我已经完成了很多乱跑,因为我将错误的数组传递给它,最后我就到了我有一堆

if ( ! isset($arr['key1']) ) { .... }
if ( ! isset($arr['key2']) ) { .... }
if ( ! isset($arr['key3']) ) { .... }
Run Code Online (Sandbox Code Playgroud)

如果我能事先检查一下阵列是否符合特定结构,我本可以节省大量时间和惊愕.理想情况下

$arrModel = array(
    'key1' => NULL ,
    'key2' => int ,
    'key3' => array(
        'key1' => NULL ,
        'key2' => NULL ,
      ),
);

if ( ! validate_array( $arrModel, $arrCandidate ) ) { ... }
Run Code Online (Sandbox Code Playgroud)

所以,我问的问题是,这已经存在,还是我自己写的?

php arrays validation

14
推荐指数
3
解决办法
9707
查看次数

在php中评估作业

我有一个关于php的'基础'问题.在示例代码中fgets,它将此代码段作为读取文件内容的示例:

while (($buffer = fgets($handle, 4096)) !== false) {
    echo $buffer;
}
Run Code Online (Sandbox Code Playgroud)

声明($buffer = fgets($handle, 4096))如何具有价值?这是一种作业+评价$buffer吗?我的意思是,它如何获得它的价值?这有名字吗?我注意到它使用了严格的比较,所以所有赋值都评估为布尔值true或false?

如果我想编写一个可以这样对待的函数,除了在某些条件下返回false之外,我是否必须做一些特殊的事情?

php evaluation variable-assignment

14
推荐指数
2
解决办法
6485
查看次数

为什么在Java实例化期间将类命名为两次?

实例化对象时,为什么要指定该类两次?

OddEven number = new OddEven();
Run Code Online (Sandbox Code Playgroud)

你为什么不能说出来number = new OddEven();?当我声明一个字符串时,我只说String一次:

String str = "abc";
Run Code Online (Sandbox Code Playgroud)

实际上,我的问题不是"为什么你这样做" - 显然,你这样做是因为你必须 - 但是,为什么创作者选择让Java语法像这样工作呢?

我的想法是:

  1. Java在低级别运行的方式有一些基础,需要输入两次名称,或者
  2. 创作者可以自由选择这样做以保持语法的某些方面一致 - 首先声明类型?或者它更像是它的前辈?

java syntax types

12
推荐指数
2
解决办法
1932
查看次数

蛮力解密攻击如何知道何时找到了合适的解决方案?

对加密数据的暴力攻击如何知道何时找到解密数据的正确密钥?有没有办法知道数据已被解密,除了让人看到它?如果它不是人类友好的数据怎么办?

encryption brute-force cryptanalysis

11
推荐指数
2
解决办法
3087
查看次数

什么是'特殊'?

我正在寻找单元测试或OOP原则方面的"特殊"定义.在谈到异常抛掷时,有几次SO,我看到过这样的评论,"好吧,我不会考虑让Bar从Foo变得特别." (有一个trollface图释?)

我做了一些谷歌搜索,并没有立即回答.是否有任何比观点或偏好更客观的定义,经验法则或指导方针?如果一个人说"这是例外"而另一个人说"不,不是",那么如何解决这一争议呢?


编辑:哇,所以已经有很多答案,评论不同意,而且他们似乎都是回答者的意见:P没有人引用维基百科页面或文章来自灰熊的片段.在"元回答"我是从这个考虑是有没有商定何时使用异常的经验法则.在选择抛出异常时,我更自信地运用自己的,个人的,特殊的规则.

oop exception

11
推荐指数
3
解决办法
458
查看次数

PHP中的只读属性?

有没有办法在PHP中创建对象的只读属性?我有一个带有几个数组的对象.我想像通常的数组一样访问它们

echo $objObject->arrArray[0];
Run Code Online (Sandbox Code Playgroud)

但我不希望能够在构造之后写入这些数组.感觉就像构建一个局部变量的PITA:

$arrArray = $objObject->getArray1();
echo $arrArray[0];
Run Code Online (Sandbox Code Playgroud)

无论如何,虽然它将数组保持在对象原始状态,但它并不妨碍我重写本地数组变量.

php oop readonly

11
推荐指数
1
解决办法
2万
查看次数

PHP的FILTER_VALIDATE_EMAIL是否提供足够的安全性?

我有一个页面,我想接受GET参数中的电子邮件地址.如果我使用FILTER_VALIDATE_EMAIL,我仍然容易受到xss和javascript注入攻击,等等?

我不是在问这是一个好的,还是足够好的电子邮件地址验证器.我想知道是否仍然可以通过它传递的任意字符串注入错误的Web代码 - 我是否需要进行额外的过滤以防止这种情况发生?

php security

11
推荐指数
1
解决办法
899
查看次数

mysql SELECT NOT IN() - 不相交集?

我在查询工作时遇到问题,我认为应该可行.它在形式中

SELECT DISTINCT a, b, c FROM t1 WHERE NOT IN ( SELECT DISTINCT a,b,c FROM t2 ) AS alias
Run Code Online (Sandbox Code Playgroud)

但MySQL的扼流圈,其中"IN("启动.请问mysql支持这样的语法吗?如果没有,我怎么能去获得这些结果?我想找到一个不同的元组(A,B,C)在表1中不存在在表2中.

mysql disjoint-union

10
推荐指数
1
解决办法
2万
查看次数

变量变量的实际用途是什么?

变量看起来很酷,但我想不出一个人会在生产环境中实际使用它们的情况.这种情况会是什么样的?它们是如何使用的?

php variable-variables

9
推荐指数
1
解决办法
1419
查看次数