Link to home
Start Free TrialLog in
Avatar of rgb192
rgb192Flag for United States of America

asked on

is php_errormsg a usable variable. Why is the try catch not working

<?php
class ShopProduct {
    public $title;
    private $discount = 0;
    private $producerMainName;
    private $producerFirstName;
    protected $price;

    function __construct(   $title, $firstName,
                            $mainName, $price ) {
        $this->title             = $title;
        $this->producerFirstName = $firstName;
        $this->producerMainName  = $mainName;
        $this->price             = $price;
    }

    function setDiscount( $num ) {
        $this->discount=$num;
    }

    function getPrice() {
        return ($this->price - $this->discount);
    }

    function getProducer() {
        return "{$this->producerFirstName}".
               " {$this->producerMainName}";
    }

    function getSummaryLine() {
        $base  = "{$this->title} ( {$this->producerMainName}, ";
        $base .= "{$this->producerFirstName} )";
        return $base;
    }
}

class CdProduct extends ShopProduct {
    public $playLength;

    function __construct(   $title, $firstName,
                            $mainName, $price, $playLength ) {
        parent::__construct(    $title, $firstName,
                                $mainName, $price );
        $this->playLength = $playLength;
    }

    function getPlayLength() {
        return $this->playLength;
    }

    function getSummaryLine() {
        $base = parent::getSummaryLine();
        $base .= ": playing time - {$this->playLength}";
        return $base;
    }
}

class BookProduct extends ShopProduct {
    public $numPages;

    function __construct(   $title, $firstName,
                            $mainName, $price, $numPages ) {
        parent::__construct(    $title, $firstName,
                                $mainName, $price );
        $this->numPages = $numPages;
    }

    function getPrice() {
        return $this->price;
    }

    function getNumberOfPages() {
        return $this->numPages;
    }

    function getSummaryLine() {
        $base = parent::getSummaryLine();
        $base .= ": page count - {$this->numPages}";
        return $base;
    }
}
class ShopProductWriter {
    private $products1z = array();

    public function addProduct( /*ShopProduct*/ $shopProduct ) {
        $this->products1z[] = $shopProduct;
    }
    public function getProducts(){
      return $this->products1z;
    }

    public function write() {
      
      try{
        $str =  "";
        foreach ( $this->getProducts() as $shopProduct ) {
            $str .= "{$shopProduct->title}: ";
            $str .= $shopProduct->getProducer();
            $str .= " ({$shopProduct->getPrice()})\n";
        }
        print $str;
        
        
      }
      catch(exception $e){
        echo '<h1>phperror message:'.$e->getMessage().'</h1>';
      }
    }//end function write
}//end class shopproductwriter
$product1 = new CdProduct("cd1", "bob", "bobbleson", 4, 50 );
$product2 = new BookProduct("book1", "harry", "harrelson", 4, 30 );
$writer = new ShopProductWriter();
$writer->addProduct( $product1 );
$writer->addProduct( $product2 );
$testarray=array(1,2,3,4,5,6);
$writer->addProduct($testarray);
$writer->write();

?>

Open in new window


from
matt zandstra php objects patterns and practice

I added
        foreach ( $this->getProducts() as $shopProduct ) {
getproducts() method


I added $testarray to attempt to pass array when object is required

I added try catch

execution stops but I would like a try catch to print error message

screenshot: from 'locals window'

is $php_errormsg an actual $string that I can use in the script?
User generated image
Avatar of Ray Paseur
Ray Paseur
Flag of United States of America image

If you want the catch() block executed you might try throwing() an exception inside the try{} code.
Avatar of Marco Gasi
See here: http://www.php.net/manual/en/internals2.opcodes.throw.php


    public function write() {
      
      try{
        $error ='Here your error message';
        throw new Exception($error);
        $str =  "";
        foreach ( $this->getProducts() as $shopProduct ) {
            $str .= "{$shopProduct->title}: ";
            $str .= $shopProduct->getProducer();
            $str .= " ({$shopProduct->getPrice()})\n";
        }
        print $str;

      }
      catch(exception $e){
        echo '<h1>phperror message:'.$e->getMessage().'</h1>';
      }
    }//end function write

Open in new window

Avatar of rgb192

ASKER

User generated image
error should be caught in 3rd loop of foreach (because array instead of object)

foreach: $shopProduct is not defined yet.

foreach loop was not entered.
Try and Catch are terms of art.  Just because an error occurs, does not mean that it is catchable.

What is your error_reporting() level?
Avatar of rgb192

ASKER

full screen shows that foreach shopProduct is not defined yet
User generated image
Avatar of rgb192

ASKER

Try and Catch are terms of art.  Just because an error occurs, does not mean that it is catchable.

What is your error_reporting() level?

I do not see error level but here is output of phpinfo()
PHP LogoPHP Version 5.4.23 

System  Windows NT ACER-PC 6.1 build 7601 (Windows 7 Home Premium Edition Service Pack 1) i586  
Build Date  Dec 11 2013 00:52:57  
Compiler  MSVC9 (Visual C++ 2008)  
Architecture  x86  
Configure Command  cscript /nologo configure.js "--enable-snapshot-build" "--disable-isapi" "--enable-debug-pack" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8-11g=C:\php-sdk\oracle\instantclient11\sdk,shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet=shared" "--with-mcrypt=static" "--disable-static-analyze" "--with-pgo"  
Server API  CGI/FastCGI  
Virtual Directory Support  enabled  
Configuration File (php.ini) Path  C:\Windows  
Loaded Configuration File  C:\Program Files (x86)\NuSphere\PhpED\php54\php.ini  
Scan this dir for additional .ini files  (none)  
Additional .ini files parsed  (none)  
PHP API  20100412  
PHP Extension  20100525  
Zend Extension  220100525  
Zend Extension Build  API220100525,TS,VC9  
PHP Extension Build  API20100525,TS,VC9  
Debug Build  no  
Thread Safety  enabled  
Zend Signal Handling  disabled  
Zend Memory Manager  enabled  
Zend Multibyte Support  disabled  
IPv6 Support  enabled  
DTrace Support  disabled  
Registered PHP Streams php, file, glob, data, http, ftp, zip, compress.zlib, phar 
Registered Stream Socket Transports tcp, udp 
Registered Stream Filters convert.iconv.*, mcrypt.*, mdecrypt.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, zlib.* 

Zend logo This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with DBG v6.1.7, (C) 2000,2014, by Dmitri Dmitrienko
 


--------------------------------------------------------------------------------

PHP Credits

--------------------------------------------------------------------------------

Configuration
bcmath
BCMath support  enabled  

Directive Local Value Master Value 
bcmath.scale 0 0 


calendar
Calendar support  enabled  


cgi-fcgi
Directive Local Value Master Value 
cgi.check_shebang_line 1 1 
cgi.discard_path 0 0 
cgi.fix_pathinfo 1 1 
cgi.force_redirect 1 1 
cgi.nph 0 0 
cgi.redirect_status_env no value no value 
cgi.rfc2616_headers 0 0 
fastcgi.impersonate 0 0 
fastcgi.logging 1 1 


Core
PHP Version  5.4.23  

Directive Local Value Master Value 
allow_url_fopen On On 
allow_url_include Off Off 
always_populate_raw_post_data Off Off 
arg_separator.input & & 
arg_separator.output & & 
asp_tags Off Off 
auto_append_file no value no value 
auto_globals_jit On On 
auto_prepend_file no value no value 
browscap no value no value 
default_charset no value no value 
default_mimetype text/html text/html 
disable_classes no value no value 
disable_functions no value no value 
display_errors On On 
display_startup_errors On On 
doc_root no value no value 
docref_ext no value no value 
docref_root no value no value 
enable_dl On On 
enable_post_data_reading On On 
error_append_string no value no value 
error_log no value no value 
error_prepend_string no value no value 
error_reporting 32767 32767 
exit_on_timeout Off Off 
expose_php On On 
extension_dir C:\Program Files (x86)\NuSphere\PhpED\php54\extensions C:\Program Files (x86)\NuSphere\PhpED\php54\extensions 
file_uploads On On 
highlight.comment #FF8000 #FF8000 
highlight.default #0000BB #0000BB 
highlight.html #000000 #000000 
highlight.keyword #007700 #007700 
highlight.string #DD0000 #DD0000 
html_errors On On 
ignore_repeated_errors Off Off 
ignore_repeated_source Off Off 
ignore_user_abort Off Off 
implicit_flush Off Off 
include_path .;C:\Program Files (x86)\NuSphere\PhpED\php54\..\include_lib .;C:\Program Files (x86)\NuSphere\PhpED\php54\..\include_lib 
log_errors On On 
log_errors_max_len 1024 1024 
mail.add_x_header On On 
mail.force_extra_parameters no value no value 
mail.log no value no value 
max_execution_time 300 300 
max_file_uploads 20 20 
max_input_nesting_level 64 64 
max_input_time -1 -1 
max_input_vars 1000 1000 
memory_limit 128M 128M 
open_basedir no value no value 
output_buffering 4096 4096 
output_handler no value no value 
post_max_size 8M 8M 
precision 14 14 
realpath_cache_size 16K 16K 
realpath_cache_ttl 120 120 
register_argc_argv Off Off 
report_memleaks Off Off 
report_zend_debug On On 
request_order GP GP 
sendmail_from no value no value 
sendmail_path no value no value 
serialize_precision 17 17 
short_open_tag Off Off 
SMTP localhost localhost 
smtp_port 25 25 
sql.safe_mode Off Off 
track_errors On On 
unserialize_callback_func no value no value 
upload_max_filesize 2M 2M 
upload_tmp_dir no value no value 
user_dir no value no value 
user_ini.cache_ttl 300 300 
user_ini.filename .user.ini .user.ini 
variables_order GPCS GPCS 
windows.show_crt_warning Off Off 
xmlrpc_error_number 0 0 
xmlrpc_errors Off Off 
zend.detect_unicode On On 
zend.enable_gc On On 
zend.multibyte Off Off 
zend.script_encoding no value no value 


ctype
ctype functions  enabled  


curl
cURL support  enabled  
cURL Information  7.30.0  
Age  3  
Features  
AsynchDNS  Yes  
Debug  No  
GSS-Negotiate  Yes  
IDN  No  
IPv6  Yes  
Largefile  Yes  
NTLM  Yes  
SPNEGO  Yes  
SSL  Yes  
SSPI  Yes  
krb4  No  
libz  Yes  
CharConv  No  
Protocols  dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, pop3, pop3s, rtsp, scp, sftp, smtp, smtps, telnet, tftp  
Host  i386-pc-win32  
SSL Version  OpenSSL/0.9.8y  
ZLib Version  1.2.7  
libSSH Version  libssh2/1.4.2  


date
date/time support  enabled  
"Olson" Timezone Database Version  2013.8  
Timezone Database  internal  
Default timezone  UTC  

Directive Local Value Master Value 
date.default_latitude 31.7667 31.7667 
date.default_longitude 35.2333 35.2333 
date.sunrise_zenith 90.583333 90.583333 
date.sunset_zenith 90.583333 90.583333 
date.timezone UTC UTC 


dbg
DBG DBG php debugger, version 6.1.7, Copyright 2001, 2014 Dmitri Dmitrienko, http://www.nusphere.com/dbg 

Version  6.1.7  
Linked  as a shared library.  
Dbg SSL  not available  
Dbg ip security  enabled.  
Profiler  enabled  
Target PHP version  5.4.x  
Server API  CGI/FastCGI  
Extensions API  220100525  
Modules API  20100525  
PHP API  20100412  

Directive Local Value Master Value 
debugger.enable_session_cookie On On 
debugger.enabled On On 
debugger.fail_silently Off Off 
debugger.hosts_allow protected value protected value 
debugger.hosts_deny protected value protected value 
debugger.ignore_nops Off Off 
debugger.IPv6_enabled On On 
debugger.JIT.enabled Off Off 
debugger.JIT.host clienthost clienthost 
debugger.JIT.ignore_exceptions no value no value 
debugger.JIT.port 7869 7869 
debugger.JIT.trig_errors no value no value 
debugger.JIT.trig_exceptions Exception Exception 
debugger.net.chunksize 131072 131072 
debugger.net.maxpacketsize 52428800 52428800 
debugger.ports protected value protected value 
debugger.profiler_enabled On On 
debugger.session_nocache On On 
debugger.timeout_seconds 300 300 


dom
DOM/XML  enabled  
DOM/XML API Version  20031129  
libxml Version  2.7.8  
HTML Support  enabled  
XPath Support  enabled  
XPointer Support  enabled  
Schema Support  enabled  
RelaxNG Support  enabled  


ereg
Regex Library  Bundled library enabled  


fileinfo
fileinfo support  enabled  
version  1.0.5  


filter
Input Validation and Filtering  enabled  
Revision  $Id: 6496ccdb6a0a4792ced7f000203981dd4afe3657 $  

Directive Local Value Master Value 
filter.default unsafe_raw unsafe_raw 
filter.default_flags no value no value 


ftp
FTP support  enabled  


gd
GD Support  enabled  
GD Version  bundled (2.1.0 compatible)  
FreeType Support  enabled  
FreeType Linkage  with freetype  
FreeType Version  2.4.10  
GIF Read Support  enabled  
GIF Create Support  enabled  
JPEG Support  enabled  
libJPEG Version  8  
PNG Support  enabled  
libPNG Version  1.2.50  
WBMP Support  enabled  
XPM Support  enabled  
libXpm Version  30411  
XBM Support  enabled  

Directive Local Value Master Value 
gd.jpeg_ignore_warning 0 0 


hash
hash support  enabled  
Hashing Engines  md2 md4 md5 sha1 sha224 sha256 sha384 sha512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru snefru256 gost adler32 crc32 crc32b fnv132 fnv164 joaat haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5  


iconv
iconv support  enabled  
iconv implementation  "libiconv"  
iconv library version  1.14  

Directive Local Value Master Value 
iconv.input_encoding ISO-8859-1 ISO-8859-1 
iconv.internal_encoding ISO-8859-1 ISO-8859-1 
iconv.output_encoding ISO-8859-1 ISO-8859-1 


json
json support  enabled  
json version  1.2.1  


libxml
libXML support  active  
libXML Compiled Version  2.7.8  
libXML Loaded Version  20708  
libXML streams  enabled  


mcrypt
mcrypt support enabled 
mcrypt_filter support enabled 
Version  2.5.8  
Api No  20021217  
Supported ciphers  cast-128 gost rijndael-128 twofish cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes arcfour  
Supported modes  cbc cfb ctr ecb ncfb nofb ofb stream  

Directive Local Value Master Value 
mcrypt.algorithms_dir no value no value 
mcrypt.modes_dir no value no value 


mhash
MHASH support  Enabled  
MHASH API Version  Emulated Support  


mysql
MySQL Support enabled 
Active Persistent Links  0  
Active Links  0  
Client API version  mysqlnd 5.0.10 - 20111026 - $Id: e707c415db32080b3752b232487a435ee0372157 $  

Directive Local Value Master Value 
mysql.allow_local_infile On On 
mysql.allow_persistent On On 
mysql.connect_timeout 60 60 
mysql.default_host no value no value 
mysql.default_password no value no value 
mysql.default_port no value no value 
mysql.default_socket no value no value 
mysql.default_user no value no value 
mysql.max_links Unlimited Unlimited 
mysql.max_persistent Unlimited Unlimited 
mysql.trace_mode Off Off 


mysqli
MysqlI Support enabled 
Client API library version  mysqlnd 5.0.10 - 20111026 - $Id: e707c415db32080b3752b232487a435ee0372157 $  
Active Persistent Links  0  
Inactive Persistent Links  0  
Active Links  0  

Directive Local Value Master Value 
mysqli.allow_local_infile On On 
mysqli.allow_persistent On On 
mysqli.default_host no value no value 
mysqli.default_port 3306 3306 
mysqli.default_pw no value no value 
mysqli.default_socket no value no value 
mysqli.default_user no value no value 
mysqli.max_links Unlimited Unlimited 
mysqli.max_persistent Unlimited Unlimited 
mysqli.reconnect Off Off 


mysqlnd
mysqlnd enabled 
Version  mysqlnd 5.0.10 - 20111026 - $Id: e707c415db32080b3752b232487a435ee0372157 $  
Compression  supported  
SSL  supported  
Command buffer size  4096  
Read buffer size  32768  
Read timeout  31536000  
Collecting statistics  Yes  
Collecting memory statistics  No  
Tracing  n/a  
Loaded plugins  mysqlnd,example,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password  
API Extensions  mysql,mysqli,pdo_mysql  

mysqlnd statistics  
bytes_sent  0  
bytes_received  0  
packets_sent  0  
packets_received  0  
protocol_overhead_in  0  
protocol_overhead_out  0  
bytes_received_ok_packet  0  
bytes_received_eof_packet  0  
bytes_received_rset_header_packet  0  
bytes_received_rset_field_meta_packet  0  
bytes_received_rset_row_packet  0  
bytes_received_prepare_response_packet  0  
bytes_received_change_user_packet  0  
packets_sent_command  0  
packets_received_ok  0  
packets_received_eof  0  
packets_received_rset_header  0  
packets_received_rset_field_meta  0  
packets_received_rset_row  0  
packets_received_prepare_response  0  
packets_received_change_user  0  
result_set_queries  0  
non_result_set_queries  0  
no_index_used  0  
bad_index_used  0  
slow_queries  0  
buffered_sets  0  
unbuffered_sets  0  
ps_buffered_sets  0  
ps_unbuffered_sets  0  
flushed_normal_sets  0  
flushed_ps_sets  0  
ps_prepared_never_executed  0  
ps_prepared_once_executed  0  
rows_fetched_from_server_normal  0  
rows_fetched_from_server_ps  0  
rows_buffered_from_client_normal  0  
rows_buffered_from_client_ps  0  
rows_fetched_from_client_normal_buffered  0  
rows_fetched_from_client_normal_unbuffered  0  
rows_fetched_from_client_ps_buffered  0  
rows_fetched_from_client_ps_unbuffered  0  
rows_fetched_from_client_ps_cursor  0  
rows_affected_normal  0  
rows_affected_ps  0  
rows_skipped_normal  0  
rows_skipped_ps  0  
copy_on_write_saved  0  
copy_on_write_performed  0  
command_buffer_too_small  0  
connect_success  0  
connect_failure  0  
connection_reused  0  
reconnect  0  
pconnect_success  0  
active_connections  0  
active_persistent_connections  0  
explicit_close  0  
implicit_close  0  
disconnect_close  0  
in_middle_of_command_close  0  
explicit_free_result  0  
implicit_free_result  0  
explicit_stmt_close  0  
implicit_stmt_close  0  
mem_emalloc_count  0  
mem_emalloc_amount  0  
mem_ecalloc_count  0  
mem_ecalloc_amount  0  
mem_erealloc_count  0  
mem_erealloc_amount  0  
mem_efree_count  0  
mem_efree_amount  0  
mem_malloc_count  0  
mem_malloc_amount  0  
mem_calloc_count  0  
mem_calloc_amount  0  
mem_realloc_count  0  
mem_realloc_amount  0  
mem_free_count  0  
mem_free_amount  0  
mem_estrndup_count  0  
mem_strndup_count  0  
mem_estndup_count  0  
mem_strdup_count  0  
proto_text_fetched_null  0  
proto_text_fetched_bit  0  
proto_text_fetched_tinyint  0  
proto_text_fetched_short  0  
proto_text_fetched_int24  0  
proto_text_fetched_int  0  
proto_text_fetched_bigint  0  
proto_text_fetched_decimal  0  
proto_text_fetched_float  0  
proto_text_fetched_double  0  
proto_text_fetched_date  0  
proto_text_fetched_year  0  
proto_text_fetched_time  0  
proto_text_fetched_datetime  0  
proto_text_fetched_timestamp  0  
proto_text_fetched_string  0  
proto_text_fetched_blob  0  
proto_text_fetched_enum  0  
proto_text_fetched_set  0  
proto_text_fetched_geometry  0  
proto_text_fetched_other  0  
proto_binary_fetched_null  0  
proto_binary_fetched_bit  0  
proto_binary_fetched_tinyint  0  
proto_binary_fetched_short  0  
proto_binary_fetched_int24  0  
proto_binary_fetched_int  0  
proto_binary_fetched_bigint  0  
proto_binary_fetched_decimal  0  
proto_binary_fetched_float  0  
proto_binary_fetched_double  0  
proto_binary_fetched_date  0  
proto_binary_fetched_year  0  
proto_binary_fetched_time  0  
proto_binary_fetched_datetime  0  
proto_binary_fetched_timestamp  0  
proto_binary_fetched_string  0  
proto_binary_fetched_blob  0  
proto_binary_fetched_enum  0  
proto_binary_fetched_set  0  
proto_binary_fetched_geometry  0  
proto_binary_fetched_other  0  
init_command_executed_count  0  
init_command_failed_count  0  
com_quit  0  
com_init_db  0  
com_query  0  
com_field_list  0  
com_create_db  0  
com_drop_db  0  
com_refresh  0  
com_shutdown  0  
com_statistics  0  
com_process_info  0  
com_connect  0  
com_process_kill  0  
com_debug  0  
com_ping  0  
com_time  0  
com_delayed_insert  0  
com_change_user  0  
com_binlog_dump  0  
com_table_dump  0  
com_connect_out  0  
com_register_slave  0  
com_stmt_prepare  0  
com_stmt_execute  0  
com_stmt_send_long_data  0  
com_stmt_close  0  
com_stmt_reset  0  
com_stmt_set_option  0  
com_stmt_fetch  0  
com_deamon  0  
bytes_received_real_data_normal  0  
bytes_received_real_data_ps  0  

example statistics  
stat1  0  
stat2  0  


odbc
ODBC Support enabled 
Active Persistent Links  0  
Active Links  0  
ODBC library  Win32  

Directive Local Value Master Value 
odbc.allow_persistent On On 
odbc.check_persistent On On 
odbc.default_cursortype Static cursor Static cursor 
odbc.default_db no value no value 
odbc.default_pw no value no value 
odbc.default_user no value no value 
odbc.defaultbinmode return as is return as is 
odbc.defaultlrl return up to 4096 bytes return up to 4096 bytes 
odbc.max_links Unlimited Unlimited 
odbc.max_persistent Unlimited Unlimited 


pcre
PCRE (Perl Compatible Regular Expressions) Support  enabled  
PCRE Library Version  8.32 2012-11-30  

Directive Local Value Master Value 
pcre.backtrack_limit 1000000 1000000 
pcre.recursion_limit 100000 100000 


PDO
PDO support enabled 
PDO drivers  mysql, sqlite  


pdo_mysql
PDO Driver for MySQL enabled 
Client API version  mysqlnd 5.0.10 - 20111026 - $Id: e707c415db32080b3752b232487a435ee0372157 $  


pdo_sqlite
PDO Driver for SQLite 3.x enabled 
SQLite Library  3.7.7.1  


pgsql
PostgreSQL Support enabled 
PostgreSQL(libpq) Version  8.3.3  
PostgreSQL(libpq)  PostgreSQL 8.3.3, compiled by Visual C++ build 1500  
Multibyte character support  enabled  
SSL support  enabled  
Active Persistent Links  0  
Active Links  0  

Directive Local Value Master Value 
pgsql.allow_persistent On On 
pgsql.auto_reset_persistent Off Off 
pgsql.ignore_notice Off Off 
pgsql.log_notice Off Off 
pgsql.max_links Unlimited Unlimited 
pgsql.max_persistent Unlimited Unlimited 


Phar
Phar: PHP Archive support enabled 
Phar EXT version  2.0.1  
Phar API version  1.1.1  
SVN revision  $Id: c85687ef5cec51a63c41cffb9ec3972cb8c3f7f3 $  
Phar-based phar archives  enabled  
Tar-based phar archives  enabled  
ZIP-based phar archives  enabled  
gzip compression  enabled  
bzip2 compression  disabled (install pecl/bz2)  
OpenSSL support  disabled (install ext/openssl)  

Phar based on pear/PHP_Archive, original concept by Davey Shafik.
Phar fully realized by Gregory Beaver and Marcus Boerger.
Portions of tar implementation Copyright (c) 2003-2009 Tim Kientzle. 

Directive Local Value Master Value 
phar.cache_list no value no value 
phar.readonly On On 
phar.require_hash On On 


Reflection
Reflection enabled 
Version  $Id: c4a7c554f00da47fe9cff384d18c532a1a959dff $  


session
Session Support  enabled  
Registered save handlers  files user  
Registered serializer handlers  php php_binary wddx  

Directive Local Value Master Value 
session.auto_start Off Off 
session.cache_expire 180 180 
session.cache_limiter nocache nocache 
session.cookie_domain no value no value 
session.cookie_httponly Off Off 
session.cookie_lifetime 0 0 
session.cookie_path / / 
session.cookie_secure Off Off 
session.entropy_file no value no value 
session.entropy_length 0 0 
session.gc_divisor 1000 1000 
session.gc_maxlifetime 1440 1440 
session.gc_probability 1 1 
session.hash_bits_per_character 5 5 
session.hash_function 0 0 
session.name PHPSESSID PHPSESSID 
session.referer_check no value no value 
session.save_handler files files 
session.save_path C:\ProgramData\PHP\sessions C:\ProgramData\PHP\sessions 
session.serialize_handler php php 
session.upload_progress.cleanup On On 
session.upload_progress.enabled On On 
session.upload_progress.freq 1% 1% 
session.upload_progress.min_freq 1 1 
session.upload_progress.name PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS 
session.upload_progress.prefix upload_progress_ upload_progress_ 
session.use_cookies On On 
session.use_only_cookies On On 
session.use_trans_sid 0 0 


SimpleXML
Simplexml support enabled 
Revision  $Id: 2358f2be6570ab413d0ead3a931a5365adf94af9 $  
Schema support  enabled  


SPL
SPL support enabled 
Interfaces  Countable, OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject  
Classes  AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException  


sqlite3
SQLite3 support enabled 
SQLite3 module version  0.7  
SQLite Library  3.7.7.1  

Directive Local Value Master Value 
sqlite3.extension_dir no value no value 


standard
Dynamic Library Support  enabled  
Internal Sendmail Support for Windows  enabled  

Directive Local Value Master Value 
assert.active 1 1 
assert.bail 0 0 
assert.callback no value no value 
assert.quiet_eval 0 0 
assert.warning 1 1 
auto_detect_line_endings 0 0 
default_socket_timeout 60 60 
from no value no value 
url_rewriter.tags a=href,area=href,frame=src,input=src,form=fakeentry a=href,area=href,frame=src,input=src,form=fakeentry 
user_agent no value no value 


tokenizer
Tokenizer Support  enabled  


wddx
WDDX Support enabled 
WDDX Session Serializer  enabled  


xml
XML Support  active  
XML Namespace Support  active  
libxml2 Version  2.7.8  


xmlreader
XMLReader  enabled  


xmlwriter
XMLWriter  enabled  


xsl
XSL  enabled  
libxslt Version  1.1.27  
libxslt compiled against libxml Version  2.7.8  
EXSLT  enabled  
libexslt Version  0.8.16  


zip
Zip  enabled  
Extension Version  $Id: 1f435bbb002ed00b47964fbd6e3b1cea9b161c07 $  
Zip version  1.11.0  
Libzip version  0.10.1  


zlib
ZLib Support enabled 
Stream Wrapper  compress.zlib://  
Stream Filter  zlib.inflate, zlib.deflate  
Compiled Version  1.2.7  
Linked Version  1.2.7  

Directive Local Value Master Value 
zlib.output_compression Off Off 
zlib.output_compression_level -1 -1 
zlib.output_handler no value no value 


Additional Modules
Module Name 


Environment
Variable Value 
ALLUSERSPROFILE  C:\ProgramData  
APPDATA  C:\Users\Acer\AppData\Roaming  
APR_ICONV_PATH  C:\svn\iconv  
asl.log  Destination=file  
CHROME_ALLOCATOR  TCMALLOC  
CLASSPATH  .;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip  
CommonProgramFiles  C:\Program Files (x86)\Common Files  
CommonProgramFiles(x86)  C:\Program Files (x86)\Common Files  
CommonProgramW6432  C:\Program Files\Common Files  
COMPUTERNAME  ACER-PC  
ComSpec  C:\Windows\system32\cmd.exe  
FP_NO_HOST_CHECK  NO  
HOMEDRIVE  C:  
HOMEPATH  \Users\Acer  
LOCALAPPDATA  C:\Users\Acer\AppData\Local  
LOGONSERVER  \\ACER-PC  
MOZ_PLUGIN_PATH  C:\Program Files\Tracker Software\PDF Viewer\Win32\  
NTIPath  C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NewTech Infosystems\NTI Backup Now 5\;  
NUMBER_OF_PROCESSORS  4  
OS  Windows_NT  
Path  C:\Windows\system32;C:\Windows;C:\Windows\system32\wbem;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files (x86)\EgisTec\MyWinLocker 3\x86;C:\Program Files (x86)\EgisTec\MyWinLocker 3\x64;C:\Program Files (x86)\Windows Live\Shared;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn;c:\Program Files\Microsoft SQL Server\100\Tools\Binn;c:\Program Files\Microsoft SQL Server\100\DTS\Binn;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE;c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn;C:\Program Files (x86)\WinSCP;C:\svn\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Smart Projects\IsoBuster;C:\Program Files (x86)\QuickTime\QTSystem;C:\Program Files (x86)\Bitvise Tunnelier;C:\Program Files (x86)\Common Files\SYSTEM\MSMAPI\1033;C:\Program Files (x86)\WinSCP\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Users\Acer\AppData\Roaming\PEAR;C:\Users\Acer\AppData\Roaming\PEAR\pear\PHPUnit;C:\RailsInstaller\Git\cmd;C:\RailsInstaller\Ruby1.9.3\bin;C:\Ruby192\bin;C:\Program Files\Java\jdk1.7.0\bin; C:\Program Files (x86)\IDM Computer Solutions\UltraEdit\;C:\Program Files (x86)\HMA! Pro VPN\bin;C:\SocketeQ\windowsandroid_root\system\bin;C:\SocketeQ\windowsandroid_root\system\lib  
PATHEXT  .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.RB;.RBW  
Pathtem  C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\  
PHPRC  no value  
PHPRC~  C:\PHP5\  
PHP_PEAR_BIN_DIR  C:\Users\Acer\AppData\Roaming\PEAR  
PHP_PEAR_DATA_DIR  C:\Users\Acer\AppData\Roaming\PEAR\data  
PHP_PEAR_DOC_DIR  C:\Users\Acer\AppData\Roaming\PEAR\docs  
PHP_PEAR_INSTALL_DIR  C:\Users\Acer\AppData\Roaming\PEAR\pear  
PHP_PEAR_PHP_BIN  C:\Program Files (x86)\NuSphere\PhpED\php54\php.exe  
PHP_PEAR_SYSCONF_DIR  C:\Users\Acer\AppData\Roaming\PEAR  
PHP_PEAR_TEST_DIR  C:\Users\Acer\AppData\Roaming\PEAR\tests  
PROCESSOR_ARCHITECTURE  x86  
PROCESSOR_ARCHITEW6432  AMD64  
PROCESSOR_IDENTIFIER  Intel64 Family 6 Model 37 Stepping 2, GenuineIntel  
PROCESSOR_LEVEL  6  
PROCESSOR_REVISION  2502  
ProgramData  C:\ProgramData  
ProgramFiles  C:\Program Files (x86)  
ProgramFiles(x86)  C:\Program Files (x86)  
ProgramW6432  C:\Program Files  
PSModulePath  C:\Windows\system32\WindowsPowerShell\v1.0\Modules\  
PUBLIC  C:\Users\Public  
QTJAVA  C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip  
SESSIONNAME  Console  
SystemDrive  C:  
SystemRoot  C:\Windows  
TEMP  C:\Users\Acer\AppData\Local\Temp  
TMP  C:\Users\Acer\AppData\Local\Temp  
USERDOMAIN  Acer-PC  
USERNAME  Acer  
USERPROFILE  C:\Users\Acer  
windir  C:\Windows  
WINDOWSANDROID_ROOT  C:\SocketeQ\windowsandroid_root  
PHP_FCGI_MAX_REQUESTS  250  


PHP Variables
Variable Value 
_REQUEST["DBGSESSID"] -1 
_GET["DBGSESSID"] -1 
_COOKIE["DBGSESSID"] no value 
_COOKIE["PHPSESSID"] g0j7o618up25l5oqsghdisb277 
_SERVER["ALLUSERSPROFILE"] C:\ProgramData 
_SERVER["APPDATA"] C:\Users\Acer\AppData\Roaming 
_SERVER["APR_ICONV_PATH"] C:\svn\iconv 
_SERVER["asl_log"] Destination=file 
_SERVER["CHROME_ALLOCATOR"] TCMALLOC 
_SERVER["CLASSPATH"] .;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip 
_SERVER["CommonProgramFiles"] C:\Program Files (x86)\Common Files 
_SERVER["CommonProgramFiles(x86)"] C:\Program Files (x86)\Common Files 
_SERVER["CommonProgramW6432"] C:\Program Files\Common Files 
_SERVER["COMPUTERNAME"] ACER-PC 
_SERVER["ComSpec"] C:\Windows\system32\cmd.exe 
_SERVER["FP_NO_HOST_CHECK"] NO 
_SERVER["HOMEDRIVE"] C: 
_SERVER["HOMEPATH"] \Users\Acer 
_SERVER["LOCALAPPDATA"] C:\Users\Acer\AppData\Local 
_SERVER["LOGONSERVER"] \\ACER-PC 
_SERVER["MOZ_PLUGIN_PATH"] C:\Program Files\Tracker Software\PDF Viewer\Win32\ 
_SERVER["NTIPath"] C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NewTech Infosystems\NTI Backup Now 5\; 
_SERVER["NUMBER_OF_PROCESSORS"] 4 
_SERVER["OS"] Windows_NT 
_SERVER["Path"] C:\Windows\system32;C:\Windows;C:\Windows\system32\wbem;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files (x86)\EgisTec\MyWinLocker 3\x86;C:\Program Files (x86)\EgisTec\MyWinLocker 3\x64;C:\Program Files (x86)\Windows Live\Shared;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn;c:\Program Files\Microsoft SQL Server\100\Tools\Binn;c:\Program Files\Microsoft SQL Server\100\DTS\Binn;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE;c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn;C:\Program Files (x86)\WinSCP;C:\svn\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Smart Projects\IsoBuster;C:\Program Files (x86)\QuickTime\QTSystem;C:\Program Files (x86)\Bitvise Tunnelier;C:\Program Files (x86)\Common Files\SYSTEM\MSMAPI\1033;C:\Program Files (x86)\WinSCP\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Users\Acer\AppData\Roaming\PEAR;C:\Users\Acer\AppData\Roaming\PEAR\pear\PHPUnit;C:\RailsInstaller\Git\cmd;C:\RailsInstaller\Ruby1.9.3\bin;C:\Ruby192\bin;C:\Program Files\Java\jdk1.7.0\bin; C:\Program Files (x86)\IDM Computer Solutions\UltraEdit\;C:\Program Files (x86)\HMA! Pro VPN\bin;C:\SocketeQ\windowsandroid_root\system\bin;C:\SocketeQ\windowsandroid_root\system\lib 
_SERVER["PATHEXT"] .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.RB;.RBW 
_SERVER["Pathtem"] C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\ 
_SERVER["PHPRC"] no value 
_SERVER["PHPRC~"] C:\PHP5\ 
_SERVER["PHP_PEAR_BIN_DIR"] C:\Users\Acer\AppData\Roaming\PEAR 
_SERVER["PHP_PEAR_DATA_DIR"] C:\Users\Acer\AppData\Roaming\PEAR\data 
_SERVER["PHP_PEAR_DOC_DIR"] C:\Users\Acer\AppData\Roaming\PEAR\docs 
_SERVER["PHP_PEAR_INSTALL_DIR"] C:\Users\Acer\AppData\Roaming\PEAR\pear 
_SERVER["PHP_PEAR_PHP_BIN"] C:\Program Files (x86)\NuSphere\PhpED\php54\php.exe 
_SERVER["PHP_PEAR_SYSCONF_DIR"] C:\Users\Acer\AppData\Roaming\PEAR 
_SERVER["PHP_PEAR_TEST_DIR"] C:\Users\Acer\AppData\Roaming\PEAR\tests 
_SERVER["PROCESSOR_ARCHITECTURE"] x86 
_SERVER["PROCESSOR_ARCHITEW6432"] AMD64 
_SERVER["PROCESSOR_IDENTIFIER"] Intel64 Family 6 Model 37 Stepping 2, GenuineIntel 
_SERVER["PROCESSOR_LEVEL"] 6 
_SERVER["PROCESSOR_REVISION"] 2502 
_SERVER["ProgramData"] C:\ProgramData 
_SERVER["ProgramFiles"] C:\Program Files (x86) 
_SERVER["ProgramFiles(x86)"] C:\Program Files (x86) 
_SERVER["ProgramW6432"] C:\Program Files 
_SERVER["PSModulePath"] C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ 
_SERVER["PUBLIC"] C:\Users\Public 
_SERVER["QTJAVA"] C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip 
_SERVER["SESSIONNAME"] Console 
_SERVER["SystemDrive"] C: 
_SERVER["SystemRoot"] C:\Windows 
_SERVER["TEMP"] C:\Users\Acer\AppData\Local\Temp 
_SERVER["TMP"] C:\Users\Acer\AppData\Local\Temp 
_SERVER["USERDOMAIN"] Acer-PC 
_SERVER["USERNAME"] Acer 
_SERVER["USERPROFILE"] C:\Users\Acer 
_SERVER["windir"] C:\Windows 
_SERVER["WINDOWSANDROID_ROOT"] C:\SocketeQ\windowsandroid_root 
_SERVER["PHP_FCGI_MAX_REQUESTS"] 250 
_SERVER["ORIG_SCRIPT_NAME"] /php/php-cgi.exe 
_SERVER["ORIG_PATH_TRANSLATED"] C:\wamp\www\phpvqp3_scripts\ch06\php.php 
_SERVER["ORIG_PATH_INFO"] /file:/C:/wamp/www/phpvqp3_scripts/ch06/php.php 
_SERVER["ORIG_SCRIPT_FILENAME"] C:/Program Files (x86)/NuSphere/PhpED/php54/php-cgi.exe 
_SERVER["QUERY_STRING"] DBGSESSID=-1 
_SERVER["REQUEST_METHOD"] GET 
_SERVER["SERVER_PROTOCOL"] HTTP/1.1 
_SERVER["GATEWAY_INTERFACE"] CGI/1.1 
_SERVER["SERVER_PORT"] 8103 
_SERVER["SERVER_NAME"] localhost 
_SERVER["SERVER_SOFTWARE"] Srv/12.0.0.12045 
_SERVER["HTTP_COOKIE"] DBGSESSID=; PHPSESSID=g0j7o618up25l5oqsghdisb277 
_SERVER["HTTP_USER_AGENT"] Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/7.0; Tablet PC 2.0; .NET4.0C; .NET4.0E) 
_SERVER["HTTP_CONNECTION"] Keep-Alive 
_SERVER["HTTP_HOST"] localhost:8103 
_SERVER["HTTP_ACCEPT_LANGUAGE"] en-US 
_SERVER["HTTP_ACCEPT_ENCODING"] gzip, deflate 
_SERVER["HTTP_ACCEPT"] application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */* 
_SERVER["REMOTE_PORT"] 44081 
_SERVER["REMOTE_ADDR"] 127.0.0.1 
_SERVER["SERVER_ADDR"] 127.0.0.1 
_SERVER["DOCUMENT_ROOT"] C:\wamp\www\phpvqp3_scripts\ch06 
_SERVER["REQUEST_URI"] /file:/C:/wamp/www/phpvqp3_scripts/ch06/php.php?DBGSESSID=-1 
_SERVER["SCRIPT_NAME"] /file:/C:/wamp/www/phpvqp3_scripts/ch06/php.php 
_SERVER["SCRIPT_FILENAME"] C:\wamp\www\phpvqp3_scripts\ch06\php.php 
_SERVER["REDIRECT_URL"] /file:/C:/wamp/www/phpvqp3_scripts/ch06/php.php 
_SERVER["REDIRECT_STATUS"] 200 
_SERVER["REDIRECT_QUERY_STRING"] DBGSESSID=-1 
_SERVER["FCGI_ROLE"] RESPONDER 
_SERVER["PHP_SELF"] /file:/C:/wamp/www/phpvqp3_scripts/ch06/php.php 
_SERVER["REQUEST_TIME_FLOAT"] 1395703047.8029 
_SERVER["REQUEST_TIME"] 1395703047 


PHP License
This program is free software; you can redistribute it and/or modify it under the terms of the PHP License as published by the PHP Group and included in the distribution in the file: LICENSE 

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

If you did not receive a copy of the PHP license, or have any questions about PHP licensing, please contact license@php.net. 
 

Open in new window

Avatar of rgb192

ASKER

error_reporting: 32767
ASKER CERTIFIED SOLUTION
Avatar of Member_2_248744
Member_2_248744
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
error_reporting: 32767
That should cover everything and at least raise a Notice if your code attempts to rely on an undefined variable.  If there is an expected Notice and you don't get the Notice, consider the possibility that there is a logic error or that you're testing the wrong copy of the script.

You probably want to understand the PHP Exception concepts and the Exception Object:
http://www.php.net/manual/en/language.exceptions.php
http://www.php.net/manual/en/class.exception.php

You can translate errors to exceptions:
http://www.php.net/manual/en/class.errorexception.php

See Example One here:
http://www.php.net/manual/en/language.exceptions.php
Avatar of rgb192

ASKER

the "shopProduct is not defined yet"  is NOT an exception or fatal error,  (warning I think) , SO no try catch is performed
So this is why there is no catch?




That should cover everything and at least raise a Notice if your code attempts to rely on an undefined variable.  If there is an expected Notice and you don't get the Notice, consider the possibility that there is a logic error or that you're testing the wrong copy of the script.

Where


<?php
function inverse($x) {
    if (!$x) {
        throw new Exception('Division by zero.');
    }
    return 1/$x;
}

try {
    echo inverse(5) . "\n";
    echo inverse(0) . "\n";
} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

// Continue execution
echo "Hello World\n";
?>

Open in new window


0.2 Caught exception: Division by zero. Hello World

good example
Avatar of rgb192

ASKER

Did I provide the proper answer?
??  don't know? - - you ask - "Did I provide the proper answer?"

But answers depend on what the question is.
This PHP  Class teaching lesson from "matt zandstra php objects patterns and practice" is just to show you (the student), The proper "code lines" to use the "try - catch", AND to write the code to do what is called "Throw an Exception", and having your own "Special" Exception "ERROR MESSAGE" as you use this like of code -
          throw new Exception('Division by zero.');

so you seem to now know how to write the code as -
 throw new Exception('The CUSTOM Error message here')
to have your own Exception generated, and END the code progression with a fatal PHP exception error.
You also seem to know the code to use for a PHP "try - catch" operation.
So in that respect, I guess you have learned the main point of this Class Tutorial lesson.

You have even been told that the "warnings and notices" from the PHP code error monitor, ARE NOT exceptions, and do not effect the PHP "try - catch" operation. A good thing to know about.

I would add, it seems important to me to study and look at (the PHP Manual) and others code work for a "Useful and NOT SIMPLE Class Coding", to try and learn "WHY and WHEN" you would use the code -
      throw new Exception( )
in a Class Method,

and Why and When you would place a PHP "try - catch" block of code in a Class Method OR in your operational code using your Class Objects.
Avatar of rgb192

ASKER

try and catch DOES not catch genreral errors, it catches EXCEPTIONS, which show up as FATAL PHP ERRORS

looking back the answer was here.
I just had to ask more questions to see it.