在下面的类中,我需要 kill() 来结束类中发生的任何事情,并停止类中的所有进程,而不是脚本:
<?php
class email {
//Expressions
const exp_name = "/^[A-Za-z .'-]+$/";
const exp_email = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
const error = "We are sorry, but there appears to be a problem with the form you submitted.<br/>";
private $msg = 'Thank you for subscribing';
protected $status = true;
function __construct() {
self::validate();
echo '<br/>the CLASS continued</b><br/>';
}
private function validate() {
//Empty fields
foreach ($_REQUEST as $key => $value) {
$val = str_replace( ' ', '', $value );
if ( $val === '' ) {
self::error( 'empty', $key );
self::kill(); //If empty, this should end the loop and class
} //if:empty
} //foreach
//Validate Name
if( !preg_match(self::exp_name,$_POST['Name']) ) {
self::error( 'name' );
self::kill(); //kill
//Validate e-Mail
if( !preg_match(self::exp_email,$_POST['e-Mail']) ) {
self::error( 'email' );
self::kill(); //kill
}
}
public function status() {
return $this->status;
}
public function msg() {
return $this->msg;
}
private function error( $type = null, $value = null ) {
switch( $type ) {
case 'empty':
$this->msg = self::error . "<div class='error'><b>The following field is empty: </b>" . $value . "</div>";
self::set( false );
break;
case 'name':
$this->msg = self::error . "<div class='error'><b>The First Name you entered does not appear to be valid.</b></div>";
self::set( false );
break;
case 'email':
$this->msg = self::error . "<div class='error'><b>The e-Mail you entered does not appear to be valid.</b></div>";
self::set( false );
break;
default:
self::set( false );
$this->msg = self::error;
}
return; //kill app
}
private function set( $boolean = false ) {
$this->status = $boolean;
}
private function kill() {
//die();
//exit( $this );
//exit();
//return;
//break;
}
}
$email = new email();
echo $email->msg();
echo '<br/>';
echo '<br/>';
echo 'The script continued!!!';
?>