相关疑难解决方法(0)

PHP中的@符号有什么用?

我见过@某些功能的使用,如下所示:

$fileHandle = @fopen($fileName, $writeAttributes);
Run Code Online (Sandbox Code Playgroud)

这个符号有什么用?

php error-suppression operators

557
推荐指数
8
解决办法
22万
查看次数

什么是更快更好地确定PHP中是否存在数组键?

考虑这两个例子......

$key = 'jim';

// example 1
if (isset($array[$key])) {
    // ...
}

// example 2    
if (array_key_exists($key, $array)) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

我很想知道其中任何一个是否更好.我一直使用第一个,但看到很多人在这个网站上使用第二个例子.

那么哪个更好?快点?更明确的意图?

php performance

147
推荐指数
6
解决办法
7万
查看次数

PHP:检查多维数组中是否存在值和键

只是想知道你是否可以帮我解决这个问题:

我有一个多维数组......

$my_array = array(    
        0 =>  array(  
            "name"   => "john",  
            "id"    =>  4  
        ),  
        1   =>  array(  
            "name" =>  "mark",  
            "id" => 152  
        ), 
    2   =>  array(  
            "name" =>  "Eduard",  
            "id" => 152  
        )
);
Run Code Online (Sandbox Code Playgroud)

想知道什么是最快和最有效的方法来检查数组$ my_array是否包含任何具有键"id"及其值152的值.我不需要回显或使用任何值.如果数组中有任何ID为"key"且值为"152"的记录,我只需要检查(返回true).

php arrays

57
推荐指数
6
解决办法
11万
查看次数

Isset与array_key_exists

在哪里issetarray_key_exist适合使用?

在我的情况下,两个都在工作.

if( isset( $array['index'] ) {
   //Do something
}    


if( array_key_exists( 'index', $array ) {
   //Do something
}
Run Code Online (Sandbox Code Playgroud)

php arrays

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

PHP关联数组与Python dict.get()等效

我已经离开PHP世界几年了,我最近继承了一个PHP项目.在PHP中应该相当容易的东西虽然让我望而却步.在Python中,我可以执行以下操作:

value = some_dict.get(unknown_key, default_value)
Run Code Online (Sandbox Code Playgroud)

我在PHP中做同样的第一个猜测是:

$value = $some_array[$unknown_key] || $default_value;
Run Code Online (Sandbox Code Playgroud)

$value由于PHP不支持值短路,因此成为布尔值.我也得到了一个,Notice: Undefined index: the_key但我知道我可以通过加前缀来抑制它@.

我有没有办法在PHP中实现类似Python的行为dict.get(key, default)?我检查了PHP的数组函数列表,但没有什么突出的.

php python arrays dictionary language-comparisons

5
推荐指数
1
解决办法
1315
查看次数

PHP优化一个很长的开关案例声明

请看下面的代码

function GetAreaName($AreaCode)
{
  switch ($AreaCode) 
  {
    case 201: return 'New Jersey';
    case 202: return 'Washington';
    // this goes on till
    case 999: return '';
  }
}
Run Code Online (Sandbox Code Playgroud)

假设AreaCode是998,那么就必须经历这么多案件!我们怎样才能优化这个功能?(使用数据库.)

我正在考虑构建一个数组并对其进行二进制搜索?但是这意味着每次调用该函数时都会重建数组?我们如何构建一次数组,缓存它并在每次调用此函数时重复使用?

php arrays optimization caching switch-statement

4
推荐指数
1
解决办法
1852
查看次数

PHP - 未定义的偏移量:0

print_r($p->attachments) 生产:

Array
(
    [0] => stdClass Object
        (
            [id] => ...
            [url] => http://...png
            [slug] => ...
            [title] => ...
            [description] => ...
            [caption] => ...
            [parent] => ...
            [mime_type] => image/png
            [images] => ...
                (
                )
        )
)
Run Code Online (Sandbox Code Playgroud)

我希望访问该url字段中的值

print_r($p->attachments[0]->url) 检索网址,但也产生: Undefined offset: 0

现在我可以通过调用来抑制错误print_r(@$p->attachments[0]->url),但有没有正确的方法来解决这个问题?

我无法修改$ p对象.

编辑:

正如所建议的,这里是来自Var_dump的响应($ p->附件)

 array(1) {
  [0]=>
  object(stdClass)#322 (9) {
    ["id"]=>
    int(1814)
    ["url"]=>
    string(76) "..."
    ["slug"]=>
    string(34) "..."
    ["title"]=>
    string(34) "..."
    ["description"]=>
    string(0) ""
    ["caption"]=>
    string(53) "..."
    ["parent"]=> …
Run Code Online (Sandbox Code Playgroud)

php arrays object

3
推荐指数
1
解决办法
4万
查看次数

php服务器方法发送GET而不是DELETE

我正在尝试实现基本用户注册RESTful api.我有一个html表单registerform.html,deregisterform.html,users.php,register.php和deregister.php,它们都粘贴在下面.

当我在浏览器中访问registerform.html时,我可以填写详细信息,users.php脚本会收到一个POST请求,并回显一个json响应,显示刚刚添加的用户的id号.我的问题是,当我使用deregister表单时,users.php脚本应该重新发送DELETE请求,但实际上是获取GET请求.我一直在寻找这个问题的答案,但我找不到解决方案.

registerform.html

<form action="users.php" method="POST">
    Username: <input type="text" name="uname" /><br />
    FirstName: <input type="text" name="fname" /><br />
    Last Name: <input type="text" name="lname" /><br />
    Date of Birth: <input type="date" name="dob" /><br />
    Telephone: <input type="mob" name="tel" /><br />
    Email: <input type="email" name="email1" /><br />
    Confirm Email: <input type="email" name="email2" /><br />
    Password: <input type="password" name="pass1" /><br />
    Confirm Password: <input type="password" name ="pass2" /><br />
    <input type="submit" value="Register" name="sub" />
    
    <br/><A HREF="login.php">Already Registered? Login Here</A><br/>
</form>  
Run Code Online (Sandbox Code Playgroud)

deregisterform.html

html php rest http http-delete

0
推荐指数
1
解决办法
140
查看次数