问两个PHP的语法问题

qq_39454760 2017-12-27 11:21:53
第一个:
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("my_db", $con);

$result = mysql_query("SELECT * FROM Persons");

while($row = mysql_fetch_array($result))
{
echo $row['FirstName'] . " " . $row['LastName'];
echo "<br />";
}

mysql_close($con);
?>

while($row = mysql_fetch_array($result)) 这句话 条件里面赋值是什么情况?

第二个:
<?php
$file = "test.txt";
if (!unlink($file))
{
echo ("Error deleting $file");
}
else
{
echo ("Deleted $file");
}
?>

unlink($file) 删除文件并没有单独写,只是放在if里面判断,结果他就执行删除了,殊为不解,麻烦解惑,谢谢!
...全文
207 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
 $con = mysql_connect("localhost","peter","abc123");
        if (!$con)   // 这句话等同于 if( !mysql_connect("localhost","peter","abc123") )
        /*
         *  mysql_connect("localhost","peter","abc123") 这是连接数据库的函数 , 成功返回true 失败返回false ,
         *  !$con 这个条件就成立了 , 所以会走die() , 同时 , 执行die()后代码就不会继续执行了
         * */
        {
            die('Could not connect: ' . mysql_error());
        }

        mysql_select_db("my_db", $con);

        $result = mysql_query("SELECT * FROM Persons");

        while($row = mysql_fetch_array($result))
            /*
             * 等同于  $row = mysql_fetch_array($result) ;
             *  while($row)
             * 为了代码简洁方便,判断跟赋值一起进行了 但是执行顺序是 先执行mysql_fetch_array()这个函数赋值然后在执行判断
             *
             * */
        {
            echo $row['FirstName'] . " " . $row['LastName'];
            echo "<br />";
        }

        mysql_close($con);

        $file = "test.txt";
        if (!unlink($file))
        /*  等同上面的那个while 即
                $res = unlink($file);
                if(!res)
         *  先执行unlink()这个函数删除文件 , 如果成功返回true 失败返回false , 然后在执行判断
         *
         * **/
        {
            echo ("Error deleting $file");
        }
        else
        {
            echo ("Deleted $file");
        }
php函数都是有返回结果的
newpeng 2017-12-28
  • 打赏
  • 举报
回复
$file = "test.txt"; if (!unlink($file)) { echo ("Error deleting $file"); } else { echo ("Deleted $file"); } 其实也可以这样写 $b = unlink($file); if($b) { } else { } 下面的写法和上面作用是完全一样的。但代码多了一行,有时候还得多定义一些不必要的变量。
newpeng 2017-12-28
  • 打赏
  • 举报
回复
在php的条件判断中,如果有你要执行的命令,它会优先执行其命令,然后条件判断它的返回结果。 比如 if(($a=fc($b+$c))>5) { } 意思就是,先执行 $a=fc($b+$c);然后 判断 $a 是否大于 5 ,这样写的目的,是为了节省代码空间,让代码看起来不那么庞大。
狄默默斯基 2017-12-28
  • 打赏
  • 举报
回复
1、那是数据库的遍历写法,逐行记录赋值给$row 2、unlink,若成功,则返回 true,失败则返回 false 3、同第2点描述
徐卡丘 2017-12-28
  • 打赏
  • 举报
回复
1、$result保存的是查询结果。 mysql_fetch_array()函数会遍历$result,取出一行赋值给$row 2、if(),while()等函数括号里的代码会先执行, unlink()执行后,执行成功,返回 true,执行失败则返回 false 3、$con保存的是mysql_connect()函数的连接结果。 如果连接成功,则返回一个 MySQL 连接标识,失败则返回 FALSE if (!$con):‘!’表示‘非’的意思,这句表示的是如果连接失败的话,则执行接下来的判断语句。该语句等价于if(!$con == false)
qq_39454760 2017-12-27
  • 打赏
  • 举报
回复
再追加一个问题。第一段代码里面if (!$con)是是什么意思, 什么情况下为非呢,如果数据库不存,第一行就报错了,也不会等到这里来判断

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧