网络营销电子商务研究中心  
How to buy the best prescription safety glasses in Canada? Let's study!
Go Back   网络营销电子商务研究中心 > 网站设计 > PHP
User Name
Password
 
FAQ Members List Calendar Cheap Glasses

Reply
 
Thread Tools Display Modes
  #1   IP: 114.238.140.18
Old 2016-02-28, 10:16 PM
Paradise Valley Paradise Valley is offline
初级会员
 
Join Date: 2010-04-25
Posts: 2
Paradise Valley 现在声名狼藉
Default PHP的if判断,为什么要写两个条件

PHP的if判断,为什么要写两个条件,只写一个$str==='string'不是也一样吗?
是出于速度的考虑吗?
代码如下,

Code:
if(isset($str) && $str==='string'){
        ...
    }
Reply With Quote
  #2   IP: 114.238.140.18
Old 2016-02-28, 10:21 PM
Parker Crossroads Parker Crossroads is offline
初级会员
 
Join Date: 2013-08-12
Posts: 2
Parker Crossroads 现在声名狼藉
Default

如果PHP处理一个未声明的变量就会触发一个Notice错误,问题不大并不会终止程序的运行
但,这是写一个严谨程序的坏习惯
特别是在使用FrameWork的时候,Notice错误会被catch,并终止程序的运行。

所以,
Code:
// 判断一个变量是否存在
isset($attr)    // $attr等于null或许未声明,将返回false 

// 判断一个变量是否有值,请使用
empty($attr)    // $attr等于'0'或''或0或null,将返回true

// 坏习惯 让弱类型的PHP去处理,看似很省心的却可能带来意想不到的结果
if($attr)
Reply With Quote
  #3   IP: 114.238.140.18
Old 2016-02-28, 10:21 PM
Parrott Parrott is offline
初级会员
 
Join Date: 2008-07-30
Posts: 1
Parrott 现在声名狼藉
Default

人们在追寻问题的答案的时候,却总是忘记追寻问题本身的意义。
•如果前面的代码已经明确 $str 变量的存在,何必加一句 isset($str) ?
•如果前面的代码不能表明 $str 变量的存在,为什么不加 isset($str) ?
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Prescription-glasses.com offers prescription glasses online at discount prices.
All times are GMT +8. The time now is 03:24 AM.


Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.